From bb605baf7d377e69a0e314d0f22719a7763ae01d Mon Sep 17 00:00:00 2001 From: Sandro Lanfranchi Date: Fri, 24 May 2024 14:22:13 +0200 Subject: [PATCH 01/19] wip: Add advancedRule handling if ContentContainsSensitiveInformation is missing --- .../MSFT_SCDLPComplianceRule.psm1 | 68 +++++++++++++++++++ .../MSFT_SCDLPComplianceRule.schema.mof | 1 + 2 files changed, 69 insertions(+) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 index b62340f1b4..4a94790684 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 @@ -30,6 +30,10 @@ function Get-TargetResource [System.String] $Comment, + [Parameter()] + [System.String] + $AdvancedRule, + [Parameter()] [Microsoft.Management.Infrastructure.CimInstance] $ContentContainsSensitiveInformation, @@ -402,6 +406,7 @@ function Get-TargetResource BlockAccess = $PolicyRule.BlockAccess BlockAccessScope = $PolicyRule.BlockAccessScope Comment = $PolicyRule.Comment + AdvancedRule = $PolicyRule.AdvancedRule | ConvertTo-Json -Compress ContentContainsSensitiveInformation = $PolicyRule.ContentContainsSensitiveInformation ExceptIfContentContainsSensitiveInformation = $PolicyRule.ExceptIfContentContainsSensitiveInformation ContentPropertyContainsWords = $PolicyRule.ContentPropertyContainsWords @@ -529,6 +534,10 @@ function Set-TargetResource [System.String] $Comment, + [Parameter()] + [System.String] + $AdvancedRule, + [Parameter()] [Microsoft.Management.Infrastructure.CimInstance] $ContentContainsSensitiveInformation, @@ -870,6 +879,15 @@ function Set-TargetResource $CreationParams.ExceptIfContentContainsSensitiveInformation = $value } + if ($null -eq $CreationParams.ContentContainsSensitiveInformation -and $null -ne $CreationParams.AdvancedRule) + { + $CreationParams.AdvancedRule = $CreationParams.AdvancedRule | ConvertFrom-Json + } + elseif($null -ne $CreationParams.ContentContainsSensitiveInformation) + { + $CreationParams.Remove('AdvancedRule') + } + $CreationParams.Remove('Ensure') # Remove authentication parameters @@ -925,6 +943,15 @@ function Set-TargetResource $UpdateParams.ExceptIfContentContainsSensitiveInformation = $value } + if ($null -eq $UpdateParams.ContentContainsSensitiveInformation -and $null -ne $UpdateParams.AdvancedRule) + { + $UpdateParams.AdvancedRule = $UpdateParams.AdvancedRule | ConvertFrom-Json + } + elseif($null -ne $UpdateParams.ContentContainsSensitiveInformation) + { + $UpdateParams.Remove('AdvancedRule') + } + $UpdateParams.Remove('Ensure') | Out-Null $UpdateParams.Remove('Name') | Out-Null $UpdateParams.Remove('Policy') | Out-Null @@ -983,6 +1010,10 @@ function Test-TargetResource [System.String] $Comment, + [Parameter()] + [System.String] + $AdvancedRule, + [Parameter()] [Microsoft.Management.Infrastructure.CimInstance] $ContentContainsSensitiveInformation, @@ -1764,6 +1795,43 @@ function Get-SCDLPSensitiveInformationGroups } $sits += $sit } + foreach ($item in $group.SensitiveTypes) + { + $sit = @{ + name = $item.name + } + + if ($null -ne $item.id) + { + $sit.Add('id', $item.id) + } + + if ($null -ne $item.maxconfidence) + { + $sit.Add('maxconfidence', $item.maxconfidence) + } + + if ($null -ne $item.minconfidence) + { + $sit.Add('minconfidence', $item.minconfidence) + } + + if ($null -ne $item.classifiertype) + { + $sit.Add('classifiertype', $item.classifiertype) + } + + if ($null -ne $item.mincount) + { + $sit.Add('mincount', $item.mincount) + } + + if ($null -ne $item.maxcount) + { + $sit.Add('maxcount', $item.maxcount) + } + $sits += $sit + } if ($sits.Length -gt 0) { $myGroup.Add('sensitivetypes', $sits) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.schema.mof index 16990b0c55..c7dfcd33f1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.schema.mof +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.schema.mof @@ -40,6 +40,7 @@ class MSFT_SCDLPComplianceRule : OMI_BaseResource [Write, Description("The BlockAccess parameter specifies an action for the DLP rule that blocks access to the source item when the conditions of the rule are met. $true: Blocks further access to the source item that matched the rule. The owner, author, and site owner can still access the item. $false: Allows access to the source item that matched the rule. This is the default value.")] Boolean BlockAccess; [Write, Description("The BlockAccessScope parameter specifies the scope of the block access action."), ValueMap{"All", "PerUser","None"}, Values{"All", "PerUser","None"}] String BlockAccessScope; [Write, Description("The Comment parameter specifies an optional comment. If you specify a value that contains spaces, enclose the value in quotation marks.")] String Comment; + [Write, Description("The AdvancedRule parameter uses complex rule syntax that supports multiple AND, OR, and NOT operators and nested groups")] String AdvancedRule; [Write, Description("The ContentContainsSensitiveInformation parameter specifies a condition for the rule that's based on a sensitive information type match in content. The rule is applied to content that contains the specified sensitive information type."), EmbeddedInstance("MSFT_SCDLPContainsSensitiveInformation")] String ContentContainsSensitiveInformation; [Write, Description("The ExceptIfContentContainsSensitiveInformation parameter specifies an exception for the rule that's based on a sensitive information type match in content. The rule isn't applied to content that contains the specified sensitive information type."), EmbeddedInstance("MSFT_SCDLPContainsSensitiveInformation")] String ExceptIfContentContainsSensitiveInformation; [Write, Description("The ContentPropertyContainsWords parameter specifies a condition for the DLP rule that's based on a property match in content. The rule is applied to content that contains the specified property.")] String ContentPropertyContainsWords[]; From e652d1b8d151b9997bf36294e24d207567af0c26 Mon Sep 17 00:00:00 2001 From: Sandro Lanfranchi Date: Wed, 29 May 2024 16:02:29 +0200 Subject: [PATCH 02/19] wip --- .../MSFT_SCDLPComplianceRule.psm1 | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 index 4a94790684..cd5d5416f0 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 @@ -397,6 +397,23 @@ function Get-TargetResource $ExceptIfContentExtensionMatchesWords = $PolicyRule.ExceptIfContentExtensionMatchesWords.Replace(' ', '').Split(',') } + $ruleobject = $PolicyRule.AdvancedRule | ConvertFrom-Json + $index = $ruleobject.Condition.SubConditions.ConditionName.IndexOf("ContentContainsSensitiveInformation") + if ($index -ne -1) + { + if($null -eq $ruleobject.Condition.SubConditions[$index].value.groups) + { + $ruleobject.Condition.SubConditions[$index].Value = $ruleobject.Condition.SubConditions[$index].Value | Select-Object * -ExcludeProperty Id + } + else + { + $ruleobject.Condition.SubConditions[$index].Value.Groups.Sensitivetypes = @($ruleobject.Condition.SubConditions[$index].Value.Groups.Sensitivetypes | Select-Object * -ExcludeProperty Id) + } + } + + $newAdvancedRule = $ruleobject | ConvertTo-Json -Depth 32 | Format-Json + $newAdvancedRule = $newAdvancedRule | ConvertTo-Json -compress + $fancyDoubleQuotes = "[\u201C\u201D]" $result = @{ Ensure = 'Present' @@ -406,7 +423,7 @@ function Get-TargetResource BlockAccess = $PolicyRule.BlockAccess BlockAccessScope = $PolicyRule.BlockAccessScope Comment = $PolicyRule.Comment - AdvancedRule = $PolicyRule.AdvancedRule | ConvertTo-Json -Compress + AdvancedRule = $newAdvancedRule ContentContainsSensitiveInformation = $PolicyRule.ContentContainsSensitiveInformation ExceptIfContentContainsSensitiveInformation = $PolicyRule.ExceptIfContentContainsSensitiveInformation ContentPropertyContainsWords = $PolicyRule.ContentPropertyContainsWords @@ -901,8 +918,13 @@ function Set-TargetResource $CreationParams.Remove('ApplicationSecret') | Out-Null $CreationParams.Remove('AccessTokens') | Out-Null + $NewruleParam = @{ + Name = $CreationParams.Name + Policy = $CreationParams.Policy + AdvancedRule = $CreationParams.AdvancedRule + } Write-Verbose -Message "Calling New-DLPComplianceRule with Values: $(Convert-M365DscHashtableToString -Hashtable $CreationParams)" - New-DLPComplianceRule @CreationParams + New-DLPComplianceRule @NewruleParam } elseif (('Present' -eq $Ensure) -and ('Present' -eq $CurrentRule.Ensure)) { @@ -2043,4 +2065,20 @@ function Test-ContainsSensitiveInformationGroups } } +function Format-Json([Parameter(Mandatory, ValueFromPipeline)][String] $json) { + $indent = 0; + ($json -Split "`n" | % { + if ($_ -match '[\}\]]\s*,?\s*$') { + # This line ends with ] or }, decrement the indentation level + $indent-- + } + $line = (' ' * $indent) + $($_.TrimStart() -replace '": (["{[])', '": $1' -replace ': ', ': ') + if ($_ -match '[\{\[]\s*$') { + # This line ends with [ or {, increment the indentation level + $indent++ + } + $line + }) -Join "`n" +} + Export-ModuleMember -Function *-TargetResource From b43b74b43a6348696d43d4cc3d9f2e81ad94d116 Mon Sep 17 00:00:00 2001 From: Sandro Lanfranchi Date: Thu, 30 May 2024 12:19:58 +0200 Subject: [PATCH 03/19] Implement AdvancedRule handling --- .../MSFT_SCDLPComplianceRule.psm1 | 31 +++++---- .../1-AddingNewDLPComplianceRule.ps1 | 1 + ...rosoft365DSC.SCDLPComplianceRule.Tests.ps1 | 67 ++++++++++++++++++- 3 files changed, 86 insertions(+), 13 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 index cd5d5416f0..68612be5af 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 @@ -397,22 +397,29 @@ function Get-TargetResource $ExceptIfContentExtensionMatchesWords = $PolicyRule.ExceptIfContentExtensionMatchesWords.Replace(' ', '').Split(',') } - $ruleobject = $PolicyRule.AdvancedRule | ConvertFrom-Json - $index = $ruleobject.Condition.SubConditions.ConditionName.IndexOf("ContentContainsSensitiveInformation") - if ($index -ne -1) + if($null -ne $PolicyRule.AdvancedRule -and $PolicyRule.AdvancedRule.Count -gt 0) { - if($null -eq $ruleobject.Condition.SubConditions[$index].value.groups) + $ruleobject = $PolicyRule.AdvancedRule | ConvertFrom-Json + $index = $ruleobject.Condition.SubConditions.ConditionName.IndexOf("ContentContainsSensitiveInformation") + if ($index -ne -1) { - $ruleobject.Condition.SubConditions[$index].Value = $ruleobject.Condition.SubConditions[$index].Value | Select-Object * -ExcludeProperty Id - } - else - { - $ruleobject.Condition.SubConditions[$index].Value.Groups.Sensitivetypes = @($ruleobject.Condition.SubConditions[$index].Value.Groups.Sensitivetypes | Select-Object * -ExcludeProperty Id) + if($null -eq $ruleobject.Condition.SubConditions[$index].value.groups) + { + $ruleobject.Condition.SubConditions[$index].Value = $ruleobject.Condition.SubConditions[$index].Value | Select-Object * -ExcludeProperty Id + } + else + { + $ruleobject.Condition.SubConditions[$index].Value.Groups.Sensitivetypes = @($ruleobject.Condition.SubConditions[$index].Value.Groups.Sensitivetypes | Select-Object * -ExcludeProperty Id) + } } - } - $newAdvancedRule = $ruleobject | ConvertTo-Json -Depth 32 | Format-Json - $newAdvancedRule = $newAdvancedRule | ConvertTo-Json -compress + $newAdvancedRule = $ruleobject | ConvertTo-Json -Depth 32 | Format-Json + $newAdvancedRule = $newAdvancedRule | ConvertTo-Json -compress + } + else + { + $newAdvancedRule = $null + } $fancyDoubleQuotes = "[\u201C\u201D]" $result = @{ diff --git a/Modules/Microsoft365DSC/Examples/Resources/SCDLPComplianceRule/1-AddingNewDLPComplianceRule.ps1 b/Modules/Microsoft365DSC/Examples/Resources/SCDLPComplianceRule/1-AddingNewDLPComplianceRule.ps1 index d2f1928a25..84be1fe019 100644 --- a/Modules/Microsoft365DSC/Examples/Resources/SCDLPComplianceRule/1-AddingNewDLPComplianceRule.ps1 +++ b/Modules/Microsoft365DSC/Examples/Resources/SCDLPComplianceRule/1-AddingNewDLPComplianceRule.ps1 @@ -23,6 +23,7 @@ Configuration Example AccessScope = 'InOrganization' BlockAccess = $True BlockAccessScope = 'All' + AdvancedRule = "`"{\r\n \`"Version\`": \`"1.0\`",\r\n \`"Condition\`": {\r\n \`"Operator\`": \`"And\`",\r\n \`"SubConditions\`": [\r\n {\r\n \`"ConditionName\`": \`"AccessScope\`",\r\n \`"Value\`": \`"InOrganization\`"\r\n },\r\n {\r\n \`"ConditionName\`": \`"ContentContainsSensitiveInformation\`",\r\n \`"Value\`": {\r\n \`"maxconfidence\`": \`"100\`",\r\n \`"name\`": \`"EU Debit Card Number\`",\r\n \`"maxcount\`": \`"9\`",\r\n \`"minconfidence\`": \`"75\`",\r\n \`"classifiertype\`": \`"Content\`",\r\n \`"mincount\`": \`"1\`",\r\n \`"confidencelevel\`": \`"Medium\`"\r\n }\r\n }\r\n ]\r\n }\r\n}`""; ContentContainsSensitiveInformation = MSFT_SCDLPContainsSensitiveInformation { SensitiveInformation = @( diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.SCDLPComplianceRule.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.SCDLPComplianceRule.Tests.ps1 index fcff17fc70..d9f6a7b1df 100644 --- a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.SCDLPComplianceRule.Tests.ps1 +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.SCDLPComplianceRule.Tests.ps1 @@ -60,6 +60,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Ensure = 'Present' Policy = 'MyParentPolicy' Comment = '' + AdvancedRule = "`"{\r\n \`"Version\`": \`"1.0\`",\r\n \`"Condition\`": {\r\n \`"Operator\`": \`"And\`",\r\n \`"SubConditions\`": [\r\n {\r\n \`"ConditionName\`": \`"AccessScope\`",\r\n \`"Value\`": \`"InOrganization\`"\r\n },\r\n {\r\n \`"ConditionName\`": \`"ContentContainsSensitiveInformation\`",\r\n \`"Value\`": {\r\n \`"maxconfidence\`": \`"100\`",\r\n \`"name\`": \`"EU Debit Card Number\`",\r\n \`"maxcount\`": \`"9\`",\r\n \`"minconfidence\`": \`"75\`",\r\n \`"classifiertype\`": \`"Content\`",\r\n \`"mincount\`": \`"1\`",\r\n \`"confidencelevel\`": \`"Medium\`"\r\n }\r\n }\r\n ]\r\n }\r\n}`""; ContentContainsSensitiveInformation = (New-CimInstance -ClassName MSFT_SCDLPContainsSensitiveInformation -Property @{ SensitiveInformation = [CIMInstance[]]@(New-CimInstance -ClassName MSFT_SCDLPSensitiveInformation -Property @{ name = 'ABA Routing Number' @@ -100,6 +101,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { Ensure = 'Present' Policy = 'MyParentPolicy' Comment = '' + AdvancedRule = "`"{\r\n \`"Version\`": \`"1.0\`",\r\n \`"Condition\`": {\r\n \`"Operator\`": \`"And\`",\r\n \`"SubConditions\`": [\r\n {\r\n \`"ConditionName\`": \`"ContentContainsSensitiveInformation\`",\r\n \`"Value\`": [\r\n {\r\n \`"Groups\`": [\r\n {\r\n \`"Name\`": \`"Default\`",\r\n \`"Operator\`": \`"Or\`",\r\n \`"Sensitivetypes\`": [\r\n {\r\n \`"Name\`": \`"SCSEDM001-SCHEMA-CUSTOMERDATA\`",\r\n \`"Mincount\`": 5,\r\n \`"Maxcount\`": 9,\r\n \`"Confidencelevel\`": \`"High\`",\r\n \`"Minconfidence\`": 85,\r\n \`"Maxconfidence\`": 100\r\n }\r\n ]\r\n }\r\n ],\r\n \`"Operator\`": \`"And\`"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}`""; ContentContainsSensitiveInformation = New-CimInstance -ClassName MSFT_SCDLPContainsSensitiveInformation -Property @{ Operator = 'And' Groups = [CIMInstance[]]@( @@ -151,7 +153,7 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { } } - Context -Name 'Rule already exists, and should' -Fixture { + Context -Name 'Rule already exists, and should with ContentContainsSensitiveInformation' -Fixture { BeforeAll { $testParams = @{ Ensure = 'Present' @@ -197,6 +199,69 @@ Describe -Name $Global:DscHelper.DescribeHeader -Fixture { } } + Context -Name 'Rule already exists, and should with AdvancedRules' -Fixture { + BeforeAll { + $testParams = @{ + Ensure = 'Present' + Policy = 'MyParentPolicy' + Comment = 'New comment' + AdvancedRule = "`"{\r\n \`"Version\`": \`"1.0\`",\r\n \`"Condition\`": {\r\n \`"Operator\`": \`"And\`",\r\n \`"SubConditions\`": [\r\n {\r\n \`"ConditionName\`": \`"AccessScope\`",\r\n \`"Value\`": \`"InOrganization\`"\r\n },\r\n {\r\n \`"ConditionName\`": \`"ContentContainsSensitiveInformation\`",\r\n \`"Value\`": {\r\n \`"name\`": \`"EU Debit Card Number\`",\r\n \`"maxconfidence\`": \`"100\`",\r\n \`"minconfidence\`": \`"75\`",\r\n \`"classifiertype\`": \`"Content\`",\r\n \`"mincount\`": \`"1\`",\r\n \`"maxcount\`": \`"9\`",\r\n \`"confidencelevel\`": \`"Medium\`"\r\n }\r\n }\r\n ]\r\n }\r\n}`""; + BlockAccess = $False + Name = 'TestPolicy' + Credential = $Credential + } + + Mock -CommandName Get-DLPComplianceRule -MockWith { + return @{ + Name = 'TestPolicy' + Comment = 'New Comment' + ParentPolicyName = 'MyParentPolicy' + AdvancedRule = @' +{ + "Version": "1.0", + "Condition": { + "Operator": "And", + "SubConditions": [ + { + "ConditionName": "AccessScope", + "Value": "InOrganization" + }, + { + "ConditionName": "ContentContainsSensitiveInformation", + "Value": [ + { + "name": "EU Debit Card Number", + "maxconfidence": "100", + "minconfidence": "75", + "classifiertype": "Content", + "mincount": "1", + "maxcount": "9", + "confidencelevel": "Medium" + } + ] + } + ] + } +} +'@; + BlockAccess = $False + } + } + } + + It 'Should return true from the Test method' { + Test-TargetResource @testParams | Should -Be $true + } + + It 'Should recreate from the Set method' { + Set-TargetResource @testParams + } + + It 'Should return Present from the Get method' { + (Get-TargetResource @testParams).Ensure | Should -Be 'Present' + } + } + Context -Name 'Rule should not exist' -Fixture { BeforeAll { $testParams = @{ From 8ce17d311dac21a3700805890e1b0047ff268503 Mon Sep 17 00:00:00 2001 From: Sandro Lanfranchi Date: Tue, 4 Jun 2024 14:38:36 +0200 Subject: [PATCH 04/19] add changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 132727cb49..9efe4c6b1f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change log for Microsoft365DSC +# UNRELEASED +* SCDLPComplianceRule + * Fix #4259 and #3845 + # 1.24.529.1 * AADAdministrativeUnit From 31db42bb6f621985d3590ef72b77f86c6cd64456 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 17 Jun 2024 17:31:39 +0000 Subject: [PATCH 05/19] Updated Resources and Cmdlet documentation pages --- docs/docs/resources/security-compliance/SCDLPComplianceRule.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/docs/resources/security-compliance/SCDLPComplianceRule.md b/docs/docs/resources/security-compliance/SCDLPComplianceRule.md index f47bb12b9b..2108e30fea 100644 --- a/docs/docs/resources/security-compliance/SCDLPComplianceRule.md +++ b/docs/docs/resources/security-compliance/SCDLPComplianceRule.md @@ -10,6 +10,7 @@ | **BlockAccess** | Write | Boolean | The BlockAccess parameter specifies an action for the DLP rule that blocks access to the source item when the conditions of the rule are met. $true: Blocks further access to the source item that matched the rule. The owner, author, and site owner can still access the item. $false: Allows access to the source item that matched the rule. This is the default value. | | | **BlockAccessScope** | Write | String | The BlockAccessScope parameter specifies the scope of the block access action. | `All`, `PerUser`, `None` | | **Comment** | Write | String | The Comment parameter specifies an optional comment. If you specify a value that contains spaces, enclose the value in quotation marks. | | +| **AdvancedRule** | Write | String | The AdvancedRule parameter uses complex rule syntax that supports multiple AND, OR, and NOT operators and nested groups | | | **ContentContainsSensitiveInformation** | Write | MSFT_SCDLPContainsSensitiveInformation | The ContentContainsSensitiveInformation parameter specifies a condition for the rule that's based on a sensitive information type match in content. The rule is applied to content that contains the specified sensitive information type. | | | **ExceptIfContentContainsSensitiveInformation** | Write | MSFT_SCDLPContainsSensitiveInformation | The ExceptIfContentContainsSensitiveInformation parameter specifies an exception for the rule that's based on a sensitive information type match in content. The rule isn't applied to content that contains the specified sensitive information type. | | | **ContentPropertyContainsWords** | Write | StringArray[] | The ContentPropertyContainsWords parameter specifies a condition for the DLP rule that's based on a property match in content. The rule is applied to content that contains the specified property. | | @@ -184,6 +185,7 @@ Configuration Example AccessScope = 'InOrganization' BlockAccess = $True BlockAccessScope = 'All' + AdvancedRule = "`"{\r\n \`"Version\`": \`"1.0\`",\r\n \`"Condition\`": {\r\n \`"Operator\`": \`"And\`",\r\n \`"SubConditions\`": [\r\n {\r\n \`"ConditionName\`": \`"AccessScope\`",\r\n \`"Value\`": \`"InOrganization\`"\r\n },\r\n {\r\n \`"ConditionName\`": \`"ContentContainsSensitiveInformation\`",\r\n \`"Value\`": {\r\n \`"maxconfidence\`": \`"100\`",\r\n \`"name\`": \`"EU Debit Card Number\`",\r\n \`"maxcount\`": \`"9\`",\r\n \`"minconfidence\`": \`"75\`",\r\n \`"classifiertype\`": \`"Content\`",\r\n \`"mincount\`": \`"1\`",\r\n \`"confidencelevel\`": \`"Medium\`"\r\n }\r\n }\r\n ]\r\n }\r\n}`""; ContentContainsSensitiveInformation = MSFT_SCDLPContainsSensitiveInformation { SensitiveInformation = @( From 24d3f8075a21ef038769460297e4c90154e9b919 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Mon, 17 Jun 2024 17:33:44 +0000 Subject: [PATCH 06/19] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index 2348d2a270..db99b6df8b 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -34987,6 +34987,11 @@ "Name": "Comment", "Option": "Write" }, + { + "CIMType": "String", + "Name": "AdvancedRule", + "Option": "Write" + }, { "CIMType": "MSFT_SCDLPContainsSensitiveInformation", "Name": "ContentContainsSensitiveInformation", From 98d4442e08887fbaf6c48ea762fd93f43644f7d8 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 17 Jun 2024 13:41:04 -0400 Subject: [PATCH 07/19] Various Fixes --- .../MSFT_AADAdministrativeUnit.psm1 | 1 - .../MSFT_AADTenantDetails.psm1 | 2 +- .../MSFT_EXOTransportRule.psm1 | 415 +++++++++--------- .../Modules/M365DSCTelemetryEngine.psm1 | 2 +- docs/docs/stylesheets/extra.css | 3 + 5 files changed, 219 insertions(+), 204 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAdministrativeUnit/MSFT_AADAdministrativeUnit.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAdministrativeUnit/MSFT_AADAdministrativeUnit.psm1 index 0d5fb761ef..5f98ccdcad 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAdministrativeUnit/MSFT_AADAdministrativeUnit.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAdministrativeUnit/MSFT_AADAdministrativeUnit.psm1 @@ -104,7 +104,6 @@ function Get-TargetResource $nullResult.Ensure = 'Absent' try { - $getValue = $null #region resource generator code if (-not [string]::IsNullOrEmpty($Id)) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADTenantDetails/MSFT_AADTenantDetails.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADTenantDetails/MSFT_AADTenantDetails.psm1 index 8113273f29..f7db6b1e4c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADTenantDetails/MSFT_AADTenantDetails.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADTenantDetails/MSFT_AADTenantDetails.psm1 @@ -95,7 +95,7 @@ function Get-TargetResource TenantId = $TenantId ApplicationSecret = $ApplicationSecret CertificateThumbprint = $CertificateThumbprint - Managedidentity = $ManagedIdentity.IsPresent + ManagedIdentity = $ManagedIdentity.IsPresent AccessTokens = $AccessTokens } Write-Verbose -Message "Get-TargetResource Result: `n $(Convert-M365DscHashtableToString -Hashtable $result)" diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportRule/MSFT_EXOTransportRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportRule/MSFT_EXOTransportRule.psm1 index 7c9b968820..02eaea2500 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportRule/MSFT_EXOTransportRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportRule/MSFT_EXOTransportRule.psm1 @@ -767,217 +767,230 @@ function Get-TargetResource $TransportRule = Get-TransportRule -Identity $Name -ErrorAction 'SilentlyContinue' - if ($null -eq $TransportRule) - { - Write-Verbose -Message "Transport Rule $($Name) does not exist." - $nullReturn = $PSBoundParameters - $nullReturn.Ensure = 'Absent' - return $nullReturn - } - else + try { - $MessageContainsDataClassificationsValue = $null - if ($null -ne $TransportRule.MessageContainsDataClassifications) + if ($null -eq $TransportRule) { - $MessageContainsDataClassificationsValue = $TransportRule.MessageContainsDataClassifications.Replace('"', "'") - } - - if ($TransportRule.State -eq "Enabled") - { - $enabled = $true + Write-Verbose -Message "Transport Rule $($Name) does not exist." + $nullReturn = $PSBoundParameters + $nullReturn.Ensure = 'Absent' + return $nullReturn } else { - $enabled = $false - } + $MessageContainsDataClassificationsValue = $null + if ($null -ne $TransportRule.MessageContainsDataClassifications) + { + $MessageContainsDataClassificationsValue = $TransportRule.MessageContainsDataClassifications.Replace('"', "'") + } - $result = @{ - Name = $TransportRule.Name - ADComparisonAttribute = $TransportRule.ADComparisonAttribute - ADComparisonOperator = $TransportRule.ADComparisonOperator - ActivationDate = $TransportRule.ActivationDate - AddManagerAsRecipientType = $TransportRule.AddManagerAsRecipientType - AddToRecipients = $TransportRule.AddToRecipients - AnyOfCcHeader = $TransportRule.AnyOfCcHeader - AnyOfCcHeaderMemberOf = $TransportRule.AnyOfCcHeaderMemberOf - AnyOfRecipientAddressContainsWords = $TransportRule.AnyOfRecipientAddressContainsWords - AnyOfRecipientAddressMatchesPatterns = $TransportRule.AnyOfRecipientAddressMatchesPatterns - AnyOfToCcHeader = $TransportRule.AnyOfToCcHeader - AnyOfToCcHeaderMemberOf = $TransportRule.AnyOfToCcHeaderMemberOf - AnyOfToHeader = $TransportRule.AnyOfToHeader - AnyOfToHeaderMemberOf = $TransportRule.AnyOfToHeaderMemberOf - ApplyClassification = $TransportRule.ApplyClassification - ApplyHtmlDisclaimerFallbackAction = $TransportRule.ApplyHtmlDisclaimerFallbackAction - ApplyHtmlDisclaimerLocation = $TransportRule.ApplyHtmlDisclaimerLocation - ApplyHtmlDisclaimerText = $TransportRule.ApplyHtmlDisclaimerText - ApplyOME = $TransportRule.ApplyOME - ApplyRightsProtectionCustomizationTemplate = $TransportRule.ApplyRightsProtectionCustomizationTemplate - ApplyRightsProtectionTemplate = $TransportRule.ApplyRightsProtectionTemplate - AttachmentContainsWords = $TransportRule.AttachmentContainsWords - AttachmentExtensionMatchesWords = $TransportRule.AttachmentExtensionMatchesWords - AttachmentHasExecutableContent = $TransportRule.AttachmentHasExecutableContent - AttachmentIsPasswordProtected = $TransportRule.AttachmentIsPasswordProtected - AttachmentIsUnsupported = $TransportRule.AttachmentIsUnsupported - AttachmentMatchesPatterns = $TransportRule.AttachmentMatchesPatterns - AttachmentNameMatchesPatterns = $TransportRule.AttachmentNameMatchesPatterns - AttachmentPropertyContainsWords = $TransportRule.AttachmentPropertyContainsWords - AttachmentProcessingLimitExceeded = $TransportRule.AttachmentProcessingLimitExceeded - AttachmentSizeOver = $TransportRule.AttachmentSizeOver - BetweenMemberOf1 = $TransportRule.BetweenMemberOf1 - BetweenMemberOf2 = $TransportRule.BetweenMemberOf2 - BlindCopyTo = $TransportRule.BlindCopyTo - Comments = $TransportRule.Comments - ContentCharacterSetContainsWords = $TransportRule.ContentCharacterSetContainsWords - CopyTo = $TransportRule.CopyTo - DeleteMessage = $TransportRule.DeleteMessage - DlpPolicy = $TransportRule.DlpPolicy - Enabled = $enabled - ExceptIfADComparisonAttribute = $TransportRule.ExceptIfADComparisonAttribute - ExceptIfADComparisonOperator = $TransportRule.ExceptIfADComparisonOperator - ExceptIfAnyOfCcHeader = $TransportRule.ExceptIfAnyOfCcHeader - ExceptIfAnyOfCcHeaderMemberOf = $TransportRule.ExceptIfAnyOfCcHeaderMemberOf - ExceptIfAnyOfRecipientAddressContainsWords = $TransportRule.ExceptIfAnyOfRecipientAddressContainsWords - ExceptIfAnyOfRecipientAddressMatchesPatterns = $TransportRule.ExceptIfAnyOfRecipientAddressMatchesPatterns - ExceptIfAnyOfToCcHeader = $TransportRule.ExceptIfAnyOfToCcHeader - ExceptIfAnyOfToCcHeaderMemberOf = $TransportRule.ExceptIfAnyOfToCcHeaderMemberOf - ExceptIfAnyOfToHeader = $TransportRule.ExceptIfAnyOfToHeader - ExceptIfAnyOfToHeaderMemberOf = $TransportRule.ExceptIfAnyOfToHeaderMemberOf - ExceptIfAttachmentContainsWords = $TransportRule.ExceptIfAttachmentContainsWords - ExceptIfAttachmentExtensionMatchesWords = $TransportRule.ExceptIfAttachmentExtensionMatchesWords - ExceptIfAttachmentHasExecutableContent = $TransportRule.ExceptIfAttachmentHasExecutableContent - ExceptIfAttachmentIsPasswordProtected = $TransportRule.ExceptIfAttachmentIsPasswordProtected - ExceptIfAttachmentIsUnsupported = $TransportRule.ExceptIfAttachmentIsUnsupported - ExceptIfAttachmentMatchesPatterns = $TransportRule.ExceptIfAttachmentMatchesPatterns - ExceptIfAttachmentNameMatchesPatterns = $TransportRule.ExceptIfAttachmentNameMatchesPatterns - ExceptIfAttachmentPropertyContainsWords = $TransportRule.ExceptIfAttachmentPropertyContainsWords - ExceptIfAttachmentProcessingLimitExceeded = $TransportRule.ExceptIfAttachmentProcessingLimitExceeded - ExceptIfAttachmentSizeOver = $TransportRule.ExceptIfAttachmentSizeOver - ExceptIfBetweenMemberOf1 = $TransportRule.ExceptIfBetweenMemberOf1 - ExceptIfBetweenMemberOf2 = $TransportRule.ExceptIfBetweenMemberOf2 - ExceptIfContentCharacterSetContainsWords = $TransportRule.ExceptIfContentCharacterSetContainsWords - ExceptIfFrom = $TransportRule.ExceptIfFrom - ExceptIfFromAddressContainsWords = $TransportRule.ExceptIfFromAddressContainsWords - ExceptIfFromAddressMatchesPatterns = $TransportRule.ExceptIfFromAddressMatchesPatterns - ExceptIfFromMemberOf = $TransportRule.ExceptIfFromMemberOf - ExceptIfFromScope = $TransportRule.ExceptIfFromScope - ExceptIfHasClassification = $TransportRule.ExceptIfHasClassification - ExceptIfHasNoClassification = $TransportRule.ExceptIfHasNoClassification - ExceptIfHeaderContainsMessageHeader = $TransportRule.ExceptIfHeaderContainsMessageHeader - ExceptIfHeaderContainsWords = $TransportRule.ExceptIfHeaderContainsWords - ExceptIfHeaderMatchesMessageHeader = $TransportRule.ExceptIfHeaderMatchesMessageHeader - ExceptIfHeaderMatchesPatterns = $TransportRule.ExceptIfHeaderMatchesPatterns - ExceptIfManagerAddresses = $TransportRule.ExceptIfManagerAddresses - ExceptIfManagerForEvaluatedUser = $TransportRule.ExceptIfManagerForEvaluatedUser - ExceptIfMessageTypeMatches = $TransportRule.ExceptIfMessageTypeMatches - ExceptIfMessageSizeOver = $TransportRule.ExceptIfMessageSizeOver - ExceptIfRecipientADAttributeContainsWords = $TransportRule.ExceptIfRecipientADAttributeContainsWords - ExceptIfRecipientADAttributeMatchesPatterns = $TransportRule.ExceptIfRecipientADAttributeMatchesPatterns - ExceptIfRecipientAddressContainsWords = $TransportRule.ExceptIfRecipientAddressContainsWords - ExceptIfRecipientAddressMatchesPatterns = $TransportRule.ExceptIfRecipientAddressMatchesPatterns - ExceptIfRecipientDomainIs = $TransportRule.ExceptIfRecipientDomainIs - ExceptIfRecipientInSenderList = $TransportRule.ExceptIfRecipientInSenderList - ExceptIfSCLOver = $TransportRule.ExceptIfSCLOver - ExceptIfSenderADAttributeContainsWords = $TransportRule.ExceptIfSenderADAttributeContainsWords - ExceptIfSenderADAttributeMatchesPatterns = $TransportRule.ExceptIfSenderADAttributeMatchesPatterns - ExceptIfSenderDomainIs = $TransportRule.ExceptIfSenderDomainIs - ExceptIfSenderInRecipientList = $TransportRule.ExceptIfSenderInRecipientList - ExceptIfSenderIpRanges = $TransportRule.ExceptIfSenderIpRanges - ExceptIfSenderManagementRelationship = $TransportRule.ExceptIfSenderManagementRelationship - ExceptIfSentTo = $TransportRule.ExceptIfSentTo - ExceptIfSentToMemberOf = $TransportRule.ExceptIfSentToMemberOf - ExceptIfSentToScope = $TransportRule.ExceptIfSentToScope - ExceptIfSubjectContainsWords = $TransportRule.ExceptIfSubjectContainsWords - ExceptIfSubjectMatchesPatterns = $TransportRule.ExceptIfSubjectMatchesPatterns - ExceptIfSubjectOrBodyContainsWords = $TransportRule.ExceptIfSubjectOrBodyContainsWords - ExceptIfSubjectOrBodyMatchesPatterns = $TransportRule.ExceptIfSubjectOrBodyMatchesPatterns - ExceptIfWithImportance = $TransportRule.ExceptIfWithImportance - ExpiryDate = $TransportRule.ExpiryDate - From = $TransportRule.From - FromAddressContainsWords = $TransportRule.FromAddressContainsWords - FromAddressMatchesPatterns = $TransportRule.FromAddressMatchesPatterns - FromMemberOf = $TransportRule.FromMemberOf - FromScope = $TransportRule.FromScope - GenerateIncidentReport = $TransportRule.GenerateIncidentReport - GenerateNotification = $TransportRule.GenerateNotification - HasClassification = $TransportRule.HasClassification - HasNoClassification = $TransportRule.HasNoClassification - HeaderContainsMessageHeader = $TransportRule.HeaderContainsMessageHeader - HeaderContainsWords = $TransportRule.HeaderContainsWords - HeaderMatchesMessageHeader = $TransportRule.HeaderMatchesMessageHeader - HeaderMatchesPatterns = $TransportRule.HeaderMatchesPatterns - IncidentReportContent = $TransportRule.IncidentReportContent - ManagerAddresses = $TransportRule.ManagerAddresses - ManagerForEvaluatedUser = $TransportRule.ManagerForEvaluatedUser - MessageSizeOver = $TransportRule.MessageSizeOver - MessageTypeMatches = $TransportRule.MessageTypeMatches - Mode = $TransportRule.Mode - ModerateMessageByManager = $TransportRule.ModerateMessageByManager - ModerateMessageByUser = $TransportRule.ModerateMessageByUser - PrependSubject = $TransportRule.PrependSubject - Priority = $TransportRule.Priority - Quarantine = $TransportRule.Quarantine - RecipientADAttributeContainsWords = $TransportRule.RecipientADAttributeContainsWords - RecipientADAttributeMatchesPatterns = $TransportRule.RecipientADAttributeMatchesPatterns - RecipientAddressContainsWords = $TransportRule.RecipientAddressContainsWords - RecipientAddressMatchesPatterns = $TransportRule.RecipientAddressMatchesPatterns - RecipientAddressType = $TransportRule.RecipientAddressType - RecipientDomainIs = $TransportRule.RecipientDomainIs - RecipientInSenderList = $TransportRule.RecipientInSenderList - RedirectMessageTo = $TransportRule.RedirectMessageTo - RejectMessageEnhancedStatusCode = $TransportRule.RejectMessageEnhancedStatusCode - RejectMessageReasonText = $TransportRule.RejectMessageReasonText - RemoveHeader = $TransportRule.RemoveHeader - RemoveOME = $TransportRule.RemoveOME - RemoveOMEv2 = $TransportRule.RemoveOMEv2 - RemoveRMSAttachmentEncryption = $TransportRule.RemoveRMSAttachmentEncryption - RouteMessageOutboundConnector = $TransportRule.RouteMessageOutboundConnector - RouteMessageOutboundRequireTls = $TransportRule.RouteMessageOutboundRequireTls - RuleErrorAction = $TransportRule.RuleErrorAction - RuleSubType = $TransportRule.RuleSubType - SCLOver = $TransportRule.SCLOver - SenderADAttributeContainsWords = $TransportRule.SenderADAttributeContainsWords - SenderADAttributeMatchesPatterns = $TransportRule.SenderADAttributeMatchesPatterns - SenderAddressLocation = $TransportRule.SenderAddressLocation - SenderDomainIs = $TransportRule.SenderDomainIs - SenderInRecipientList = $TransportRule.SenderInRecipientList - SenderIpRanges = $TransportRule.SenderIpRanges - SenderManagementRelationship = $TransportRule.SenderManagementRelationship - SentTo = $TransportRule.SentTo - SentToMemberOf = $TransportRule.SentToMemberOf - SentToScope = $TransportRule.SentToScope - SetAuditSeverity = $TransportRule.SetAuditSeverity - SetHeaderName = $TransportRule.SetHeaderName - SetHeaderValue = $TransportRule.SetHeaderValue - SetSCL = $TransportRule.SetSCL - StopRuleProcessing = $TransportRule.StopRuleProcessing - SubjectContainsWords = $TransportRule.SubjectContainsWords - SubjectMatchesPatterns = $TransportRule.SubjectMatchesPatterns - SubjectOrBodyContainsWords = $TransportRule.SubjectOrBodyContainsWords - SubjectOrBodyMatchesPatterns = $TransportRule.SubjectOrBodyMatchesPatterns - WithImportance = $TransportRule.WithImportance - Ensure = 'Present' - Credential = $Credential - ApplicationId = $ApplicationId - CertificateThumbprint = $CertificateThumbprint - CertificatePath = $CertificatePath - CertificatePassword = $CertificatePassword - Managedidentity = $ManagedIdentity.IsPresent - TenantId = $TenantId - AccessTokens = $AccessTokens - } + if ($TransportRule.State -eq "Enabled") + { + $enabled = $true + } + else + { + $enabled = $false + } - # Formats DateTime as String - if ($null -ne $result.ActivationDate) - { - $result.ActivationDate = $TransportRule.ActivationDate.ToUniversalTime().ToString() + $result = @{ + Name = $TransportRule.Name + ADComparisonAttribute = $TransportRule.ADComparisonAttribute + ADComparisonOperator = $TransportRule.ADComparisonOperator + ActivationDate = $TransportRule.ActivationDate + AddManagerAsRecipientType = $TransportRule.AddManagerAsRecipientType + AddToRecipients = $TransportRule.AddToRecipients + AnyOfCcHeader = $TransportRule.AnyOfCcHeader + AnyOfCcHeaderMemberOf = $TransportRule.AnyOfCcHeaderMemberOf + AnyOfRecipientAddressContainsWords = $TransportRule.AnyOfRecipientAddressContainsWords + AnyOfRecipientAddressMatchesPatterns = $TransportRule.AnyOfRecipientAddressMatchesPatterns + AnyOfToCcHeader = $TransportRule.AnyOfToCcHeader + AnyOfToCcHeaderMemberOf = $TransportRule.AnyOfToCcHeaderMemberOf + AnyOfToHeader = $TransportRule.AnyOfToHeader + AnyOfToHeaderMemberOf = $TransportRule.AnyOfToHeaderMemberOf + ApplyClassification = $TransportRule.ApplyClassification + ApplyHtmlDisclaimerFallbackAction = $TransportRule.ApplyHtmlDisclaimerFallbackAction + ApplyHtmlDisclaimerLocation = $TransportRule.ApplyHtmlDisclaimerLocation + ApplyHtmlDisclaimerText = $TransportRule.ApplyHtmlDisclaimerText + ApplyOME = $TransportRule.ApplyOME + ApplyRightsProtectionCustomizationTemplate = $TransportRule.ApplyRightsProtectionCustomizationTemplate + ApplyRightsProtectionTemplate = $TransportRule.ApplyRightsProtectionTemplate + AttachmentContainsWords = $TransportRule.AttachmentContainsWords + AttachmentExtensionMatchesWords = $TransportRule.AttachmentExtensionMatchesWords + AttachmentHasExecutableContent = $TransportRule.AttachmentHasExecutableContent + AttachmentIsPasswordProtected = $TransportRule.AttachmentIsPasswordProtected + AttachmentIsUnsupported = $TransportRule.AttachmentIsUnsupported + AttachmentMatchesPatterns = $TransportRule.AttachmentMatchesPatterns + AttachmentNameMatchesPatterns = $TransportRule.AttachmentNameMatchesPatterns + AttachmentPropertyContainsWords = $TransportRule.AttachmentPropertyContainsWords + AttachmentProcessingLimitExceeded = $TransportRule.AttachmentProcessingLimitExceeded + AttachmentSizeOver = $TransportRule.AttachmentSizeOver + BetweenMemberOf1 = $TransportRule.BetweenMemberOf1 + BetweenMemberOf2 = $TransportRule.BetweenMemberOf2 + BlindCopyTo = $TransportRule.BlindCopyTo + Comments = $TransportRule.Comments + ContentCharacterSetContainsWords = $TransportRule.ContentCharacterSetContainsWords + CopyTo = $TransportRule.CopyTo + DeleteMessage = $TransportRule.DeleteMessage + DlpPolicy = $TransportRule.DlpPolicy + Enabled = $enabled + ExceptIfADComparisonAttribute = $TransportRule.ExceptIfADComparisonAttribute + ExceptIfADComparisonOperator = $TransportRule.ExceptIfADComparisonOperator + ExceptIfAnyOfCcHeader = $TransportRule.ExceptIfAnyOfCcHeader + ExceptIfAnyOfCcHeaderMemberOf = $TransportRule.ExceptIfAnyOfCcHeaderMemberOf + ExceptIfAnyOfRecipientAddressContainsWords = $TransportRule.ExceptIfAnyOfRecipientAddressContainsWords + ExceptIfAnyOfRecipientAddressMatchesPatterns = $TransportRule.ExceptIfAnyOfRecipientAddressMatchesPatterns + ExceptIfAnyOfToCcHeader = $TransportRule.ExceptIfAnyOfToCcHeader + ExceptIfAnyOfToCcHeaderMemberOf = $TransportRule.ExceptIfAnyOfToCcHeaderMemberOf + ExceptIfAnyOfToHeader = $TransportRule.ExceptIfAnyOfToHeader + ExceptIfAnyOfToHeaderMemberOf = $TransportRule.ExceptIfAnyOfToHeaderMemberOf + ExceptIfAttachmentContainsWords = $TransportRule.ExceptIfAttachmentContainsWords + ExceptIfAttachmentExtensionMatchesWords = $TransportRule.ExceptIfAttachmentExtensionMatchesWords + ExceptIfAttachmentHasExecutableContent = $TransportRule.ExceptIfAttachmentHasExecutableContent + ExceptIfAttachmentIsPasswordProtected = $TransportRule.ExceptIfAttachmentIsPasswordProtected + ExceptIfAttachmentIsUnsupported = $TransportRule.ExceptIfAttachmentIsUnsupported + ExceptIfAttachmentMatchesPatterns = $TransportRule.ExceptIfAttachmentMatchesPatterns + ExceptIfAttachmentNameMatchesPatterns = $TransportRule.ExceptIfAttachmentNameMatchesPatterns + ExceptIfAttachmentPropertyContainsWords = $TransportRule.ExceptIfAttachmentPropertyContainsWords + ExceptIfAttachmentProcessingLimitExceeded = $TransportRule.ExceptIfAttachmentProcessingLimitExceeded + ExceptIfAttachmentSizeOver = $TransportRule.ExceptIfAttachmentSizeOver + ExceptIfBetweenMemberOf1 = $TransportRule.ExceptIfBetweenMemberOf1 + ExceptIfBetweenMemberOf2 = $TransportRule.ExceptIfBetweenMemberOf2 + ExceptIfContentCharacterSetContainsWords = $TransportRule.ExceptIfContentCharacterSetContainsWords + ExceptIfFrom = $TransportRule.ExceptIfFrom + ExceptIfFromAddressContainsWords = $TransportRule.ExceptIfFromAddressContainsWords + ExceptIfFromAddressMatchesPatterns = $TransportRule.ExceptIfFromAddressMatchesPatterns + ExceptIfFromMemberOf = $TransportRule.ExceptIfFromMemberOf + ExceptIfFromScope = $TransportRule.ExceptIfFromScope + ExceptIfHasClassification = $TransportRule.ExceptIfHasClassification + ExceptIfHasNoClassification = $TransportRule.ExceptIfHasNoClassification + ExceptIfHeaderContainsMessageHeader = $TransportRule.ExceptIfHeaderContainsMessageHeader + ExceptIfHeaderContainsWords = $TransportRule.ExceptIfHeaderContainsWords + ExceptIfHeaderMatchesMessageHeader = $TransportRule.ExceptIfHeaderMatchesMessageHeader + ExceptIfHeaderMatchesPatterns = $TransportRule.ExceptIfHeaderMatchesPatterns + ExceptIfManagerAddresses = $TransportRule.ExceptIfManagerAddresses + ExceptIfManagerForEvaluatedUser = $TransportRule.ExceptIfManagerForEvaluatedUser + ExceptIfMessageTypeMatches = $TransportRule.ExceptIfMessageTypeMatches + ExceptIfMessageSizeOver = $TransportRule.ExceptIfMessageSizeOver + ExceptIfRecipientADAttributeContainsWords = $TransportRule.ExceptIfRecipientADAttributeContainsWords + ExceptIfRecipientADAttributeMatchesPatterns = $TransportRule.ExceptIfRecipientADAttributeMatchesPatterns + ExceptIfRecipientAddressContainsWords = $TransportRule.ExceptIfRecipientAddressContainsWords + ExceptIfRecipientAddressMatchesPatterns = $TransportRule.ExceptIfRecipientAddressMatchesPatterns + ExceptIfRecipientDomainIs = $TransportRule.ExceptIfRecipientDomainIs + ExceptIfRecipientInSenderList = $TransportRule.ExceptIfRecipientInSenderList + ExceptIfSCLOver = $TransportRule.ExceptIfSCLOver + ExceptIfSenderADAttributeContainsWords = $TransportRule.ExceptIfSenderADAttributeContainsWords + ExceptIfSenderADAttributeMatchesPatterns = $TransportRule.ExceptIfSenderADAttributeMatchesPatterns + ExceptIfSenderDomainIs = $TransportRule.ExceptIfSenderDomainIs + ExceptIfSenderInRecipientList = $TransportRule.ExceptIfSenderInRecipientList + ExceptIfSenderIpRanges = $TransportRule.ExceptIfSenderIpRanges + ExceptIfSenderManagementRelationship = $TransportRule.ExceptIfSenderManagementRelationship + ExceptIfSentTo = $TransportRule.ExceptIfSentTo + ExceptIfSentToMemberOf = $TransportRule.ExceptIfSentToMemberOf + ExceptIfSentToScope = $TransportRule.ExceptIfSentToScope + ExceptIfSubjectContainsWords = $TransportRule.ExceptIfSubjectContainsWords + ExceptIfSubjectMatchesPatterns = $TransportRule.ExceptIfSubjectMatchesPatterns + ExceptIfSubjectOrBodyContainsWords = $TransportRule.ExceptIfSubjectOrBodyContainsWords + ExceptIfSubjectOrBodyMatchesPatterns = $TransportRule.ExceptIfSubjectOrBodyMatchesPatterns + ExceptIfWithImportance = $TransportRule.ExceptIfWithImportance + ExpiryDate = $TransportRule.ExpiryDate + From = $TransportRule.From + FromAddressContainsWords = $TransportRule.FromAddressContainsWords + FromAddressMatchesPatterns = $TransportRule.FromAddressMatchesPatterns + FromMemberOf = $TransportRule.FromMemberOf + FromScope = $TransportRule.FromScope + GenerateIncidentReport = $TransportRule.GenerateIncidentReport + GenerateNotification = $TransportRule.GenerateNotification + HasClassification = $TransportRule.HasClassification + HasNoClassification = $TransportRule.HasNoClassification + HeaderContainsMessageHeader = $TransportRule.HeaderContainsMessageHeader + HeaderContainsWords = $TransportRule.HeaderContainsWords + HeaderMatchesMessageHeader = $TransportRule.HeaderMatchesMessageHeader + HeaderMatchesPatterns = $TransportRule.HeaderMatchesPatterns + IncidentReportContent = $TransportRule.IncidentReportContent + ManagerAddresses = $TransportRule.ManagerAddresses + ManagerForEvaluatedUser = $TransportRule.ManagerForEvaluatedUser + MessageSizeOver = $TransportRule.MessageSizeOver + MessageTypeMatches = $TransportRule.MessageTypeMatches + Mode = $TransportRule.Mode + ModerateMessageByManager = $TransportRule.ModerateMessageByManager + ModerateMessageByUser = $TransportRule.ModerateMessageByUser + PrependSubject = $TransportRule.PrependSubject + Priority = $TransportRule.Priority + Quarantine = $TransportRule.Quarantine + RecipientADAttributeContainsWords = $TransportRule.RecipientADAttributeContainsWords + RecipientADAttributeMatchesPatterns = $TransportRule.RecipientADAttributeMatchesPatterns + RecipientAddressContainsWords = $TransportRule.RecipientAddressContainsWords + RecipientAddressMatchesPatterns = $TransportRule.RecipientAddressMatchesPatterns + RecipientAddressType = $TransportRule.RecipientAddressType + RecipientDomainIs = $TransportRule.RecipientDomainIs + RecipientInSenderList = $TransportRule.RecipientInSenderList + RedirectMessageTo = $TransportRule.RedirectMessageTo + RejectMessageEnhancedStatusCode = $TransportRule.RejectMessageEnhancedStatusCode + RejectMessageReasonText = $TransportRule.RejectMessageReasonText + RemoveHeader = $TransportRule.RemoveHeader + RemoveOME = $TransportRule.RemoveOME + RemoveOMEv2 = $TransportRule.RemoveOMEv2 + RemoveRMSAttachmentEncryption = $TransportRule.RemoveRMSAttachmentEncryption + RouteMessageOutboundConnector = $TransportRule.RouteMessageOutboundConnector + RouteMessageOutboundRequireTls = $TransportRule.RouteMessageOutboundRequireTls + RuleErrorAction = $TransportRule.RuleErrorAction + RuleSubType = $TransportRule.RuleSubType + SCLOver = $TransportRule.SCLOver + SenderADAttributeContainsWords = $TransportRule.SenderADAttributeContainsWords + SenderADAttributeMatchesPatterns = $TransportRule.SenderADAttributeMatchesPatterns + SenderAddressLocation = $TransportRule.SenderAddressLocation + SenderDomainIs = $TransportRule.SenderDomainIs + SenderInRecipientList = $TransportRule.SenderInRecipientList + SenderIpRanges = $TransportRule.SenderIpRanges + SenderManagementRelationship = $TransportRule.SenderManagementRelationship + SentTo = $TransportRule.SentTo + SentToMemberOf = $TransportRule.SentToMemberOf + SentToScope = $TransportRule.SentToScope + SetAuditSeverity = $TransportRule.SetAuditSeverity + SetHeaderName = $TransportRule.SetHeaderName + SetHeaderValue = $TransportRule.SetHeaderValue + SetSCL = $TransportRule.SetSCL + StopRuleProcessing = $TransportRule.StopRuleProcessing + SubjectContainsWords = $TransportRule.SubjectContainsWords + SubjectMatchesPatterns = $TransportRule.SubjectMatchesPatterns + SubjectOrBodyContainsWords = $TransportRule.SubjectOrBodyContainsWords + SubjectOrBodyMatchesPatterns = $TransportRule.SubjectOrBodyMatchesPatterns + WithImportance = $TransportRule.WithImportance + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + CertificateThumbprint = $CertificateThumbprint + CertificatePath = $CertificatePath + CertificatePassword = $CertificatePassword + Managedidentity = $ManagedIdentity.IsPresent + TenantId = $TenantId + AccessTokens = $AccessTokens + } + + # Formats DateTime as String + if ($null -ne $result.ActivationDate) + { + $result.ActivationDate = $TransportRule.ActivationDate.ToUniversalTime().ToString() + } + if ($null -ne $result.ExpiryDate) + { + $result.ExpiryDate = $TransportRule.ExpiryDate.ToUniversalTime().ToString() + } + + Write-Verbose -Message "Found Transport Rule $($Name)" + return $result } - if ($null -ne $result.ExpiryDate) + catch { - $result.ExpiryDate = $TransportRule.ExpiryDate.ToUniversalTime().ToString() - } + New-M365DSCLogEntry -Message 'Error retrieving data:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential - Write-Verbose -Message "Found Transport Rule $($Name)" - return $result + return $nullReturn + } } } diff --git a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 index cf9fce0d0a..9019091d5a 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 @@ -162,7 +162,7 @@ function Add-M365DSCTelemetryEvent $Data.Add('PowerShellAgent', 'Cloud Shell') } - if ($null -ne $Data.Resource -and -not $Data.Keys.Contains('Resource')) + if ($null -ne $Data.Resource -and $Data.Keys.Contains('Resource')) { if ($Data.Resource.StartsWith('MSFT_AAD') -or $Data.Resource.StartsWith('AAD')) { diff --git a/docs/docs/stylesheets/extra.css b/docs/docs/stylesheets/extra.css index 0147d70d8f..0f5e31c13f 100644 --- a/docs/docs/stylesheets/extra.css +++ b/docs/docs/stylesheets/extra.css @@ -2,3 +2,6 @@ .md-grid { max-width: 67rem; } +.md-sidebar--secondary:not([hidden]) { + display:hidden; +} From 271966356292f2de62780a11f3bb76c5a837a011 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Mon, 17 Jun 2024 14:24:30 -0400 Subject: [PATCH 08/19] Update MSFT_EXOTransportRule.psm1 --- .../MSFT_EXOTransportRule.psm1 | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportRule/MSFT_EXOTransportRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportRule/MSFT_EXOTransportRule.psm1 index 02eaea2500..db57ff8e81 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportRule/MSFT_EXOTransportRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportRule/MSFT_EXOTransportRule.psm1 @@ -981,19 +981,18 @@ function Get-TargetResource Write-Verbose -Message "Found Transport Rule $($Name)" return $result } - catch - { - New-M365DSCLogEntry -Message 'Error retrieving data:' ` - -Exception $_ ` - -Source $($MyInvocation.MyCommand.Source) ` - -TenantId $TenantId ` - -Credential $Credential + } + catch + { + New-M365DSCLogEntry -Message 'Error retrieving data:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential - return $nullReturn - } + return $nullReturn } } - function Set-TargetResource { [CmdletBinding()] From 124b0f2722bec60552ab08db49c5d8f8db241bd6 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 19 Jun 2024 07:49:30 -0400 Subject: [PATCH 09/19] Added Instance Count --- .../MSFT_AADActivityBasedTimeoutPolicy.psm1 | 5 +++++ .../MSFT_AADAdministrativeUnit.psm1 | 5 +++++ .../MSFT_AADApplication.psm1 | 5 +++++ .../MSFT_AADAttributeSet.psm1 | 5 +++++ ...AADAuthenticationContextClassReference.psm1 | 5 +++++ .../MSFT_AADAuthenticationFlowPolicy.psm1 | 5 +++++ .../MSFT_AADAuthenticationMethodPolicy.psm1 | 5 +++++ ...uthenticationMethodPolicyAuthenticator.psm1 | 5 +++++ ...SFT_AADAuthenticationMethodPolicyEmail.psm1 | 5 +++++ ...SFT_AADAuthenticationMethodPolicyFido2.psm1 | 5 +++++ .../MSFT_AADAuthenticationMethodPolicySms.psm1 | 5 +++++ ..._AADAuthenticationMethodPolicySoftware.psm1 | 5 +++++ ...AADAuthenticationMethodPolicyTemporary.psm1 | 5 +++++ ...SFT_AADAuthenticationMethodPolicyVoice.psm1 | 5 +++++ ...MSFT_AADAuthenticationMethodPolicyX509.psm1 | 5 +++++ .../MSFT_AADAuthenticationStrengthPolicy.psm1 | 5 +++++ .../MSFT_AADAuthorizationPolicy.psm1 | 5 ++++- .../MSFT_AADConditionalAccessPolicy.psm1 | 5 +++++ .../MSFT_AADCrossTenantAccessPolicy.psm1 | 5 +++++ ...TenantAccessPolicyConfigurationDefault.psm1 | 5 +++++ ...TenantAccessPolicyConfigurationPartner.psm1 | 5 +++++ ..._AADEntitlementManagementAccessPackage.psm1 | 5 +++++ ...anagementAccessPackageAssignmentPolicy.psm1 | 5 +++++ ...itlementManagementAccessPackageCatalog.psm1 | 5 +++++ ...ManagementAccessPackageCatalogResource.psm1 | 5 +++++ ...tlementManagementConnectedOrganization.psm1 | 5 +++++ ...AADEntitlementManagementRoleAssignment.psm1 | 5 +++++ .../MSFT_AADExternalIdentityPolicy.psm1 | 5 +++++ .../MSFT_AADGroup/MSFT_AADGroup.psm1 | 5 +++++ .../MSFT_AADGroupLifecyclePolicy.psm1 | 5 +++++ .../MSFT_AADGroupsNamingPolicy.psm1 | 5 +++++ .../MSFT_AADGroupsSettings.psm1 | 5 +++++ .../MSFT_AADNamedLocationPolicy.psm1 | 5 +++++ .../MSFT_AADRoleDefinition.psm1 | 5 +++++ ...MSFT_AADRoleEligibilityScheduleRequest.psm1 | 5 +++++ .../MSFT_AADRoleSetting.psm1 | 5 +++++ .../MSFT_AADSecurityDefaults.psm1 | 5 +++++ .../MSFT_AADServicePrincipal.psm1 | 5 +++++ .../MSFT_AADSocialIdentityProvider.psm1 | 5 +++++ .../MSFT_AADTenantDetails.psm1 | 5 +++++ .../MSFT_AADTokenLifetimePolicy.psm1 | 5 +++++ .../MSFT_AADUser/MSFT_AADUser.psm1 | 5 +++++ .../MSFT_EXOAcceptedDomain.psm1 | 5 +++++ .../MSFT_EXOActiveSyncDeviceAccessRule.psm1 | 5 +++++ .../MSFT_EXOAddressBookPolicy.psm1 | 5 +++++ .../MSFT_EXOAddressList.psm1 | 5 +++++ .../MSFT_EXOAntiPhishPolicy.psm1 | 5 +++++ .../MSFT_EXOAntiPhishRule.psm1 | 5 +++++ .../MSFT_EXOApplicationAccessPolicy.psm1 | 5 +++++ .../MSFT_EXOAtpPolicyForO365.psm1 | 5 +++++ .../MSFT_EXOAuthenticationPolicy.psm1 | 5 +++++ ...MSFT_EXOAuthenticationPolicyAssignment.psm1 | 5 +++++ .../MSFT_EXOAvailabilityAddressSpace.psm1 | 5 +++++ .../MSFT_EXOAvailabilityConfig.psm1 | 5 +++++ .../MSFT_EXOCASMailboxPlan.psm1 | 5 +++++ .../MSFT_EXOCASMailboxSettings.psm1 | 5 +++++ .../MSFT_EXOCalendarProcessing.psm1 | 5 +++++ .../MSFT_EXOClientAccessRule.psm1 | 5 +++++ .../MSFT_EXODataClassification.psm1 | 5 +++++ .../MSFT_EXODataEncryptionPolicy.psm1 | 5 +++++ .../MSFT_EXODistributionGroup.psm1 | 5 +++++ .../MSFT_EXODkimSigningConfig.psm1 | 5 +++++ .../MSFT_EXOEmailAddressPolicy.psm1 | 5 +++++ .../MSFT_EXOGlobalAddressList.psm1 | 5 +++++ .../MSFT_EXOGroupSettings.psm1 | 5 +++++ .../MSFT_EXOHostedConnectionFilterPolicy.psm1 | 5 +++++ .../MSFT_EXOHostedContentFilterPolicy.psm1 | 5 +++++ .../MSFT_EXOHostedContentFilterRule.psm1 | 5 +++++ ...MSFT_EXOHostedOutboundSpamFilterPolicy.psm1 | 5 +++++ .../MSFT_EXOHostedOutboundSpamFilterRule.psm1 | 5 +++++ .../MSFT_EXOIRMConfiguration.psm1 | 5 +++++ .../MSFT_EXOInboundConnector.psm1 | 5 +++++ .../MSFT_EXOIntraOrganizationConnector.psm1 | 5 +++++ .../MSFT_EXOJournalRule.psm1 | 5 +++++ .../MSFT_EXOMailContact.psm1 | 5 +++++ .../MSFT_EXOMailTips/MSFT_EXOMailTips.psm1 | 5 +++++ .../MSFT_EXOMailboxAutoReplyConfiguration.psm1 | 5 +++++ .../MSFT_EXOMailboxCalendarFolder.psm1 | 5 +++++ .../MSFT_EXOMailboxPermission.psm1 | 5 +++++ .../MSFT_EXOMailboxPlan.psm1 | 5 +++++ .../MSFT_EXOMailboxSettings.psm1 | 5 +++++ .../MSFT_EXOMalwareFilterPolicy.psm1 | 5 +++++ .../MSFT_EXOMalwareFilterRule.psm1 | 5 +++++ .../MSFT_EXOManagementRole.psm1 | 5 +++++ .../MSFT_EXOManagementRoleAssignment.psm1 | 5 +++++ .../MSFT_EXOManagementRoleEntry.psm1 | 5 +++++ .../MSFT_EXOMessageClassification.psm1 | 5 +++++ .../MSFT_EXOMobileDeviceMailboxPolicy.psm1 | 5 +++++ .../MSFT_EXOOMEConfiguration.psm1 | 5 +++++ .../MSFT_EXOOfflineAddressBook.psm1 | 5 +++++ .../MSFT_EXOOnPremisesOrganization.psm1 | 5 +++++ .../MSFT_EXOOrganizationConfig.psm1 | 5 +++++ .../MSFT_EXOOrganizationRelationship.psm1 | 5 +++++ .../MSFT_EXOOutboundConnector.psm1 | 5 +++++ .../MSFT_EXOOwaMailboxPolicy.psm1 | 5 +++++ .../MSFT_EXOPartnerApplication.psm1 | 5 +++++ .../MSFT_EXOPerimeterConfiguration.psm1 | 5 +++++ .../MSFT_EXOPlace/MSFT_EXOPlace.psm1 | 5 +++++ .../MSFT_EXOPolicyTipConfig.psm1 | 5 +++++ .../MSFT_EXOQuarantinePolicy.psm1 | 5 +++++ .../MSFT_EXORecipientPermission.psm1 | 5 +++++ .../MSFT_EXORemoteDomain.psm1 | 5 +++++ .../MSFT_EXOReportSubmissionPolicy.psm1 | 5 +++++ .../MSFT_EXOReportSubmissionRule.psm1 | 5 +++++ .../MSFT_EXOResourceConfiguration.psm1 | 5 +++++ .../MSFT_EXORoleAssignmentPolicy.psm1 | 5 +++++ .../MSFT_EXORoleGroup/MSFT_EXORoleGroup.psm1 | 5 +++++ .../MSFT_EXOSafeAttachmentPolicy.psm1 | 5 +++++ .../MSFT_EXOSafeAttachmentRule.psm1 | 5 +++++ .../MSFT_EXOSafeLinksPolicy.psm1 | 5 +++++ .../MSFT_EXOSafeLinksRule.psm1 | 5 +++++ .../MSFT_EXOSharedMailbox.psm1 | 5 +++++ .../MSFT_EXOSharingPolicy.psm1 | 5 +++++ .../MSFT_EXOTransportConfig.psm1 | 5 +++++ .../MSFT_EXOTransportRule.psm1 | 5 +++++ .../MSFT_IntuneASRRulesPolicyWindows10.psm1 | 5 +++++ ...calAdministratorPasswordSolutionPolicy.psm1 | 5 +++++ ...otectionLocalUserGroupMembershipPolicy.psm1 | 5 +++++ .../MSFT_IntuneAccountProtectionPolicy.psm1 | 5 +++++ ...AntivirusPolicyWindows10SettingCatalog.psm1 | 5 +++++ ...SFT_IntuneAppConfigurationDevicePolicy.psm1 | 5 +++++ .../MSFT_IntuneAppConfigurationPolicy.psm1 | 5 +++++ .../MSFT_IntuneAppProtectionPolicyAndroid.psm1 | 5 +++++ .../MSFT_IntuneAppProtectionPolicyiOS.psm1 | 5 +++++ ...ntuneApplicationControlPolicyWindows10.psm1 | 5 +++++ ...ctionRulesPolicyWindows10ConfigManager.psm1 | 5 +++++ ...DeviceAndAppManagementAssignmentFilter.psm1 | 5 +++++ .../MSFT_IntuneDeviceCategory.psm1 | 5 +++++ .../MSFT_IntuneDeviceCleanupRule.psm1 | 5 +++++ ...FT_IntuneDeviceCompliancePolicyAndroid.psm1 | 5 +++++ ...viceCompliancePolicyAndroidDeviceOwner.psm1 | 5 +++++ ...viceCompliancePolicyAndroidWorkProfile.psm1 | 5 +++++ ...MSFT_IntuneDeviceCompliancePolicyMacOS.psm1 | 5 +++++ ..._IntuneDeviceCompliancePolicyWindows10.psm1 | 5 +++++ .../MSFT_IntuneDeviceCompliancePolicyiOs.psm1 | 5 +++++ ...nAdministrativeTemplatePolicyWindows10.psm1 | 5 +++++ ...viceConfigurationCustomPolicyWindows10.psm1 | 5 +++++ ...erForEndpointOnboardingPolicyWindows10.psm1 | 5 +++++ ...ionDeliveryOptimizationPolicyWindows10.psm1 | 5 +++++ ...ConfigurationDomainJoinPolicyWindows10.psm1 | 5 +++++ ...nfigurationEmailProfilePolicyWindows10.psm1 | 5 +++++ ...ationEndpointProtectionPolicyWindows10.psm1 | 5 +++++ ...rationFirmwareInterfacePolicyWindows10.psm1 | 5 +++++ ...MonitoringConfigurationPolicyWindows10.psm1 | 5 +++++ ...ationIdentityProtectionPolicyWindows10.psm1 | 5 +++++ ...nImportedPfxCertificatePolicyWindows10.psm1 | 5 +++++ ...eviceConfigurationKioskPolicyWindows10.psm1 | 5 +++++ ...gurationNetworkBoundaryPolicyWindows10.psm1 | 5 +++++ ...gurationPkcsCertificatePolicyWindows10.psm1 | 5 +++++ ...DeviceConfigurationPlatformScriptMacOS.psm1 | 9 +++++++-- ...viceConfigurationPlatformScriptWindows.psm1 | 7 ++++++- ...rationPolicyAndroidDeviceAdministrator.psm1 | 5 +++++ ...eConfigurationPolicyAndroidDeviceOwner.psm1 | 5 +++++ ...gurationPolicyAndroidOpenSourceProject.psm1 | 5 +++++ ...eConfigurationPolicyAndroidWorkProfile.psm1 | 5 +++++ ...T_IntuneDeviceConfigurationPolicyMacOS.psm1 | 5 +++++ ...tuneDeviceConfigurationPolicyWindows10.psm1 | 5 +++++ ...SFT_IntuneDeviceConfigurationPolicyiOS.psm1 | 5 +++++ ...gurationSCEPCertificatePolicyWindows10.psm1 | 5 +++++ ...urationSecureAssessmentPolicyWindows10.psm1 | 5 +++++ ...rationSharedMultiDevicePolicyWindows10.psm1 | 5 +++++ ...ationTrustedCertificatePolicyWindows10.psm1 | 5 +++++ ...eDeviceConfigurationVpnPolicyWindows10.psm1 | 5 +++++ ...onfigurationWindowsTeamPolicyWindows10.psm1 | 5 +++++ ...nfigurationWiredNetworkPolicyWindows10.psm1 | 9 +++++++-- ...IntuneDeviceEnrollmentLimitRestriction.psm1 | 5 +++++ ...uneDeviceEnrollmentPlatformRestriction.psm1 | 5 +++++ ...uneDeviceEnrollmentStatusPageWindows10.psm1 | 5 +++++ .../MSFT_IntuneDeviceRemediation.psm1 | 7 ++++++- .../MSFT_IntuneDiskEncryptionMacOS.psm1 | 9 +++++++-- ...intDetectionAndResponsePolicyWindows10.psm1 | 5 +++++ ...rotectionPolicyWindows10SettingCatalog.psm1 | 5 +++++ .../MSFT_IntunePolicySets.psm1 | 5 +++++ .../MSFT_IntuneRoleAssignment.psm1 | 5 +++++ .../MSFT_IntuneRoleDefinition.psm1 | 5 +++++ ...eSettingCatalogASRRulesPolicyWindows10.psm1 | 5 +++++ ...uneSettingCatalogCustomPolicyWindows10.psm1 | 5 +++++ ...rationPolicyAndroidDeviceAdministrator.psm1 | 5 +++++ ...tionPolicyAndroidEnterpriseDeviceOwner.psm1 | 5 +++++ ...tionPolicyAndroidEnterpriseWorkProfile.psm1 | 5 +++++ ...eWifiConfigurationPolicyAndroidForWork.psm1 | 5 +++++ ...gurationPolicyAndroidOpenSourceProject.psm1 | 5 +++++ .../MSFT_IntuneWifiConfigurationPolicyIOS.psm1 | 5 +++++ ...SFT_IntuneWifiConfigurationPolicyMacOS.psm1 | 5 +++++ ...IntuneWifiConfigurationPolicyWindows10.psm1 | 5 +++++ ...otDeploymentProfileAzureADHybridJoined.psm1 | 5 +++++ ...utopilotDeploymentProfileAzureADJoined.psm1 | 5 +++++ ...onProtectionPolicyWindows10MdmEnrolled.psm1 | 5 +++++ ...orBusinessDriverUpdateProfileWindows10.psm1 | 7 ++++++- ...rBusinessFeatureUpdateProfileWindows10.psm1 | 5 +++++ ...eForBusinessRingUpdateProfileWindows10.psm1 | 5 +++++ .../MSFT_O365AdminAuditLogConfig.psm1 | 5 +++++ .../MSFT_O365Group/MSFT_O365Group.psm1 | 5 +++++ .../MSFT_O365OrgCustomizationSetting.psm1 | 5 +++++ .../MSFT_O365OrgSettings.psm1 | 5 +++++ ...365SearchAndIntelligenceConfigurations.psm1 | 5 +++++ .../MSFT_ODSettings/MSFT_ODSettings.psm1 | 5 +++++ .../MSFT_PPPowerAppsEnvironment.psm1 | 5 +++++ .../MSFT_PPTenantIsolationSettings.psm1 | 5 +++++ .../MSFT_PPTenantSettings.psm1 | 5 +++++ .../MSFT_PlannerBucket/MSFT_PlannerBucket.psm1 | 5 +++++ .../MSFT_PlannerPlan/MSFT_PlannerPlan.psm1 | 5 +++++ .../MSFT_PlannerTask/MSFT_PlannerTask.psm1 | 5 +++++ .../MSFT_SCAuditConfigurationPolicy.psm1 | 5 +++++ .../MSFT_SCAutoSensitivityLabelPolicy.psm1 | 5 +++++ .../MSFT_SCAutoSensitivityLabelRule.psm1 | 5 +++++ .../MSFT_SCCaseHoldPolicy.psm1 | 5 +++++ .../MSFT_SCCaseHoldRule.psm1 | 5 +++++ .../MSFT_SCComplianceCase.psm1 | 5 +++++ .../MSFT_SCComplianceSearch.psm1 | 5 +++++ .../MSFT_SCComplianceSearchAction.psm1 | 5 +++++ .../MSFT_SCComplianceTag.psm1 | 5 +++++ .../MSFT_SCDLPCompliancePolicy.psm1 | 5 +++++ .../MSFT_SCDLPComplianceRule.psm1 | 5 +++++ .../MSFT_SCDeviceConditionalAccessPolicy.psm1 | 5 +++++ .../MSFT_SCDeviceConfigurationPolicy.psm1 | 5 +++++ .../MSFT_SCFilePlanPropertyAuthority.psm1 | 5 +++++ .../MSFT_SCFilePlanPropertyCategory.psm1 | 5 +++++ .../MSFT_SCFilePlanPropertyCitation.psm1 | 5 +++++ .../MSFT_SCFilePlanPropertyDepartment.psm1 | 5 +++++ .../MSFT_SCFilePlanPropertyReferenceId.psm1 | 5 +++++ .../MSFT_SCFilePlanPropertySubCategory.psm1 | 5 +++++ .../MSFT_SCLabelPolicy/MSFT_SCLabelPolicy.psm1 | 5 +++++ .../MSFT_SCProtectionAlert.psm1 | 5 +++++ .../MSFT_SCRetentionCompliancePolicy.psm1 | 5 +++++ .../MSFT_SCRetentionComplianceRule.psm1 | 5 +++++ .../MSFT_SCRetentionEventType.psm1 | 5 +++++ .../MSFT_SCRoleGroup/MSFT_SCRoleGroup.psm1 | 5 +++++ .../MSFT_SCRoleGroupMember.psm1 | 5 +++++ .../MSFT_SCSecurityFilter.psm1 | 5 +++++ .../MSFT_SCSensitivityLabel.psm1 | 5 +++++ .../MSFT_SCSupervisoryReviewPolicy.psm1 | 5 +++++ .../MSFT_SCSupervisoryReviewRule.psm1 | 5 +++++ .../MSFT_SPOAccessControlSettings.psm1 | 5 +++++ .../DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 | 5 +++++ .../MSFT_SPOBrowserIdleSignout.psm1 | 5 +++++ .../MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 | 5 +++++ .../MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 | 5 +++++ .../MSFT_SPOOrgAssetsLibrary.psm1 | 5 +++++ .../MSFT_SPOPropertyBag.psm1 | 5 +++++ .../MSFT_SPOSearchManagedProperty.psm1 | 5 +++++ .../MSFT_SPOSearchResultSource.psm1 | 5 +++++ .../MSFT_SPOSharingSettings.psm1 | 5 +++++ .../MSFT_SPOSite/MSFT_SPOSite.psm1 | 5 +++++ .../MSFT_SPOSiteAuditSettings.psm1 | 5 +++++ .../MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 | 4 ++++ .../MSFT_SPOSiteDesignRights.psm1 | 5 +++++ .../MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 | 5 +++++ .../MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 | 5 +++++ .../MSFT_SPOStorageEntity.psm1 | 5 +++++ .../MSFT_SPOTenantCdnEnabled.psm1 | 5 +++++ .../MSFT_SPOTenantCdnPolicy.psm1 | 10 ++++++++++ .../MSFT_SPOTenantSettings.psm1 | 5 +++++ .../MSFT_SPOTheme/MSFT_SPOTheme.psm1 | 5 +++++ .../MSFT_SPOUserProfileProperty.psm1 | 5 +++++ .../MSFT_TeamsAppPermissionPolicy.psm1 | 5 +++++ .../MSFT_TeamsAppSetupPolicy.psm1 | 5 +++++ .../MSFT_TeamsAudioConferencingPolicy.psm1 | 5 +++++ .../MSFT_TeamsCallHoldPolicy.psm1 | 5 +++++ .../MSFT_TeamsCallParkPolicy.psm1 | 5 +++++ .../MSFT_TeamsCallQueue.psm1 | 5 +++++ .../MSFT_TeamsCallingPolicy.psm1 | 5 +++++ .../MSFT_TeamsChannel/MSFT_TeamsChannel.psm1 | 5 +++++ .../MSFT_TeamsChannelTab.psm1 | 5 +++++ .../MSFT_TeamsChannelsPolicy.psm1 | 5 +++++ .../MSFT_TeamsClientConfiguration.psm1 | 5 +++++ .../MSFT_TeamsComplianceRecordingPolicy.psm1 | 5 +++++ .../MSFT_TeamsCortanaPolicy.psm1 | 5 +++++ ..._TeamsDialInConferencingTenantSettings.psm1 | 5 +++++ .../MSFT_TeamsEmergencyCallRoutingPolicy.psm1 | 5 +++++ .../MSFT_TeamsEmergencyCallingPolicy.psm1 | 5 +++++ .../MSFT_TeamsEnhancedEncryptionPolicy.psm1 | 5 +++++ .../MSFT_TeamsEventsPolicy.psm1 | 5 +++++ .../MSFT_TeamsFederationConfiguration.psm1 | 5 +++++ .../MSFT_TeamsFeedbackPolicy.psm1 | 5 +++++ .../MSFT_TeamsFilesPolicy.psm1 | 5 +++++ .../MSFT_TeamsGroupPolicyAssignment.psm1 | 5 +++++ .../MSFT_TeamsGuestCallingConfiguration.psm1 | 5 +++++ .../MSFT_TeamsGuestMeetingConfiguration.psm1 | 5 +++++ .../MSFT_TeamsGuestMessagingConfiguration.psm1 | 5 +++++ .../MSFT_TeamsIPPhonePolicy.psm1 | 5 +++++ ...SFT_TeamsMeetingBroadcastConfiguration.psm1 | 5 +++++ .../MSFT_TeamsMeetingBroadcastPolicy.psm1 | 5 +++++ .../MSFT_TeamsMeetingConfiguration.psm1 | 5 +++++ .../MSFT_TeamsMeetingPolicy.psm1 | 5 +++++ .../MSFT_TeamsMessagingPolicy.psm1 | 5 +++++ .../MSFT_TeamsMobilityPolicy.psm1 | 5 +++++ .../MSFT_TeamsNetworkRoamingPolicy.psm1 | 5 +++++ .../MSFT_TeamsOnlineVoiceUser.psm1 | 5 +++++ .../MSFT_TeamsOnlineVoicemailPolicy.psm1 | 5 +++++ .../MSFT_TeamsOnlineVoicemailUserSettings.psm1 | 5 +++++ .../MSFT_TeamsOrgWideAppSettings.psm1 | 5 +++++ .../MSFT_TeamsPstnUsage.psm1 | 5 +++++ .../MSFT_TeamsShiftsPolicy.psm1 | 5 +++++ .../MSFT_TeamsTeam/MSFT_TeamsTeam.psm1 | 5 +++++ .../MSFT_TeamsTemplatesPolicy.psm1 | 5 +++++ .../MSFT_TeamsTenantDialPlan.psm1 | 5 +++++ .../MSFT_TeamsTenantNetworkRegion.psm1 | 5 +++++ .../MSFT_TeamsTenantNetworkSite.psm1 | 5 +++++ .../MSFT_TeamsTenantNetworkSubnet.psm1 | 5 +++++ .../MSFT_TeamsTenantTrustedIPAddress.psm1 | 5 +++++ .../MSFT_TeamsTranslationRule.psm1 | 5 +++++ .../MSFT_TeamsUnassignedNumberTreatment.psm1 | 5 +++++ .../MSFT_TeamsUpdateManagementPolicy.psm1 | 5 +++++ .../MSFT_TeamsUpgradeConfiguration.psm1 | 5 +++++ .../MSFT_TeamsUpgradePolicy.psm1 | 5 +++++ .../MSFT_TeamsUser/MSFT_TeamsUser.psm1 | 5 +++++ .../MSFT_TeamsUserCallingSettings.psm1 | 5 +++++ .../MSFT_TeamsUserPolicyAssignment.psm1 | 5 +++++ .../MSFT_TeamsVdiPolicy.psm1 | 5 +++++ .../MSFT_TeamsVoiceRoute.psm1 | 5 +++++ .../MSFT_TeamsVoiceRoutingPolicy.psm1 | 5 +++++ .../MSFT_TeamsWorkloadPolicy.psm1 | 5 +++++ .../Modules/M365DSCReverse.psm1 | 18 +++++++++++++++++- .../Modules/M365DSCTelemetryEngine.psm1 | 17 +++++++++++++++++ 315 files changed, 1611 insertions(+), 11 deletions(-) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADActivityBasedTimeoutPolicy/MSFT_AADActivityBasedTimeoutPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADActivityBasedTimeoutPolicy/MSFT_AADActivityBasedTimeoutPolicy.psm1 index 5571838a5a..a77718b9eb 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADActivityBasedTimeoutPolicy/MSFT_AADActivityBasedTimeoutPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADActivityBasedTimeoutPolicy/MSFT_AADActivityBasedTimeoutPolicy.psm1 @@ -489,6 +489,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAdministrativeUnit/MSFT_AADAdministrativeUnit.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAdministrativeUnit/MSFT_AADAdministrativeUnit.psm1 index 5f98ccdcad..aec6e79b42 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAdministrativeUnit/MSFT_AADAdministrativeUnit.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAdministrativeUnit/MSFT_AADAdministrativeUnit.psm1 @@ -1068,6 +1068,11 @@ function Export-TargetResource } foreach ($config in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADApplication/MSFT_AADApplication.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADApplication/MSFT_AADApplication.psm1 index 86da5c2ea1..92186c5ce3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADApplication/MSFT_AADApplication.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADApplication/MSFT_AADApplication.psm1 @@ -911,6 +911,11 @@ function Export-TargetResource [array] $Script:exportedInstances = Get-MgApplication -Filter $Filter -All -ErrorAction Stop foreach ($AADApp in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedInstances.Count)] $($AADApp.DisplayName)" -NoNewline $Params = @{ ApplicationId = $ApplicationId diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAttributeSet/MSFT_AADAttributeSet.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAttributeSet/MSFT_AADAttributeSet.psm1 index eaa3236938..ee160a0fba 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAttributeSet/MSFT_AADAttributeSet.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAttributeSet/MSFT_AADAttributeSet.psm1 @@ -341,6 +341,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationContextClassReference/MSFT_AADAuthenticationContextClassReference.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationContextClassReference/MSFT_AADAuthenticationContextClassReference.psm1 index 38a36e0fdb..3044c0388e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationContextClassReference/MSFT_AADAuthenticationContextClassReference.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationContextClassReference/MSFT_AADAuthenticationContextClassReference.psm1 @@ -365,6 +365,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id + " - " + $config.DisplayName Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationFlowPolicy/MSFT_AADAuthenticationFlowPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationFlowPolicy/MSFT_AADAuthenticationFlowPolicy.psm1 index 42658b0e94..d9ff57506c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationFlowPolicy/MSFT_AADAuthenticationFlowPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationFlowPolicy/MSFT_AADAuthenticationFlowPolicy.psm1 @@ -332,6 +332,11 @@ function Export-TargetResource $dscContent = '' try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicy/MSFT_AADAuthenticationMethodPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicy/MSFT_AADAuthenticationMethodPolicy.psm1 index a4a8c31b13..e792ad65e9 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicy/MSFT_AADAuthenticationMethodPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicy/MSFT_AADAuthenticationMethodPolicy.psm1 @@ -583,6 +583,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyAuthenticator/MSFT_AADAuthenticationMethodPolicyAuthenticator.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyAuthenticator/MSFT_AADAuthenticationMethodPolicyAuthenticator.psm1 index 834b5740be..a06f995f97 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyAuthenticator/MSFT_AADAuthenticationMethodPolicyAuthenticator.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyAuthenticator/MSFT_AADAuthenticationMethodPolicyAuthenticator.psm1 @@ -785,6 +785,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyEmail/MSFT_AADAuthenticationMethodPolicyEmail.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyEmail/MSFT_AADAuthenticationMethodPolicyEmail.psm1 index fd451855a1..5ceea269ca 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyEmail/MSFT_AADAuthenticationMethodPolicyEmail.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyEmail/MSFT_AADAuthenticationMethodPolicyEmail.psm1 @@ -523,6 +523,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyFido2/MSFT_AADAuthenticationMethodPolicyFido2.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyFido2/MSFT_AADAuthenticationMethodPolicyFido2.psm1 index 838bb583c8..a5d2268cb8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyFido2/MSFT_AADAuthenticationMethodPolicyFido2.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyFido2/MSFT_AADAuthenticationMethodPolicyFido2.psm1 @@ -551,6 +551,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicySms/MSFT_AADAuthenticationMethodPolicySms.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicySms/MSFT_AADAuthenticationMethodPolicySms.psm1 index 3adb7c3ebe..c04894b025 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicySms/MSFT_AADAuthenticationMethodPolicySms.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicySms/MSFT_AADAuthenticationMethodPolicySms.psm1 @@ -499,6 +499,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicySoftware/MSFT_AADAuthenticationMethodPolicySoftware.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicySoftware/MSFT_AADAuthenticationMethodPolicySoftware.psm1 index 69421f88d8..a169bdd262 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicySoftware/MSFT_AADAuthenticationMethodPolicySoftware.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicySoftware/MSFT_AADAuthenticationMethodPolicySoftware.psm1 @@ -499,6 +499,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyTemporary/MSFT_AADAuthenticationMethodPolicyTemporary.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyTemporary/MSFT_AADAuthenticationMethodPolicyTemporary.psm1 index 20ced5e074..1a70718259 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyTemporary/MSFT_AADAuthenticationMethodPolicyTemporary.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyTemporary/MSFT_AADAuthenticationMethodPolicyTemporary.psm1 @@ -568,6 +568,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyVoice/MSFT_AADAuthenticationMethodPolicyVoice.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyVoice/MSFT_AADAuthenticationMethodPolicyVoice.psm1 index 886ae76db5..de6206c2d9 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyVoice/MSFT_AADAuthenticationMethodPolicyVoice.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyVoice/MSFT_AADAuthenticationMethodPolicyVoice.psm1 @@ -512,6 +512,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyX509/MSFT_AADAuthenticationMethodPolicyX509.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyX509/MSFT_AADAuthenticationMethodPolicyX509.psm1 index d8d7549ca9..865bb4f957 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyX509/MSFT_AADAuthenticationMethodPolicyX509.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationMethodPolicyX509/MSFT_AADAuthenticationMethodPolicyX509.psm1 @@ -575,6 +575,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationStrengthPolicy/MSFT_AADAuthenticationStrengthPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationStrengthPolicy/MSFT_AADAuthenticationStrengthPolicy.psm1 index 2687668a31..2f47cae8a5 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationStrengthPolicy/MSFT_AADAuthenticationStrengthPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthenticationStrengthPolicy/MSFT_AADAuthenticationStrengthPolicy.psm1 @@ -385,6 +385,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthorizationPolicy/MSFT_AADAuthorizationPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthorizationPolicy/MSFT_AADAuthorizationPolicy.psm1 index 06b5ac601d..ca0f9d56af 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthorizationPolicy/MSFT_AADAuthorizationPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADAuthorizationPolicy/MSFT_AADAuthorizationPolicy.psm1 @@ -570,7 +570,10 @@ function Export-TargetResource try { - $dscContent = '' + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } $params = @{ IsSingleInstance = 'Yes' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 index f26f757707..d7d6ba740b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADConditionalAccessPolicy/MSFT_AADConditionalAccessPolicy.psm1 @@ -2051,6 +2051,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($Policy in $Policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Policies.Count)] $($Policy.DisplayName)" -NoNewline $Params = @{ DisplayName = $Policy.DisplayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADCrossTenantAccessPolicy/MSFT_AADCrossTenantAccessPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADCrossTenantAccessPolicy/MSFT_AADCrossTenantAccessPolicy.psm1 index 3b82bf228a..6cf95e4059 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADCrossTenantAccessPolicy/MSFT_AADCrossTenantAccessPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADCrossTenantAccessPolicy/MSFT_AADCrossTenantAccessPolicy.psm1 @@ -341,6 +341,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $dscContent = '' $params = @{ IsSingleInstance = 'Yes' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADCrossTenantAccessPolicyConfigurationDefault/MSFT_AADCrossTenantAccessPolicyConfigurationDefault.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADCrossTenantAccessPolicyConfigurationDefault/MSFT_AADCrossTenantAccessPolicyConfigurationDefault.psm1 index 96e0d8c4e9..bdcbf0e75a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADCrossTenantAccessPolicyConfigurationDefault/MSFT_AADCrossTenantAccessPolicyConfigurationDefault.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADCrossTenantAccessPolicyConfigurationDefault/MSFT_AADCrossTenantAccessPolicyConfigurationDefault.psm1 @@ -450,6 +450,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $dscContent = '' $Params = @{ IsSingleInstance = 'Yes' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADCrossTenantAccessPolicyConfigurationPartner/MSFT_AADCrossTenantAccessPolicyConfigurationPartner.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADCrossTenantAccessPolicyConfigurationPartner/MSFT_AADCrossTenantAccessPolicyConfigurationPartner.psm1 index 82362e881d..000ddfa281 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADCrossTenantAccessPolicyConfigurationPartner/MSFT_AADCrossTenantAccessPolicyConfigurationPartner.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADCrossTenantAccessPolicyConfigurationPartner/MSFT_AADCrossTenantAccessPolicyConfigurationPartner.psm1 @@ -485,6 +485,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($entry in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($entry.TenantId)" -NoNewline $Params = @{ PartnerTenantId = $entry.TenantId diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackage/MSFT_AADEntitlementManagementAccessPackage.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackage/MSFT_AADEntitlementManagementAccessPackage.psm1 index a2bdbf508f..96b4b6e29d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackage/MSFT_AADEntitlementManagementAccessPackage.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackage/MSFT_AADEntitlementManagementAccessPackage.psm1 @@ -934,6 +934,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageAssignmentPolicy/MSFT_AADEntitlementManagementAccessPackageAssignmentPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageAssignmentPolicy/MSFT_AADEntitlementManagementAccessPackageAssignmentPolicy.psm1 index 95676758d7..3c068d29e1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageAssignmentPolicy/MSFT_AADEntitlementManagementAccessPackageAssignmentPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageAssignmentPolicy/MSFT_AADEntitlementManagementAccessPackageAssignmentPolicy.psm1 @@ -925,6 +925,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalog/MSFT_AADEntitlementManagementAccessPackageCatalog.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalog/MSFT_AADEntitlementManagementAccessPackageCatalog.psm1 index d3d7e8d9fd..36cd50c4af 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalog/MSFT_AADEntitlementManagementAccessPackageCatalog.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalog/MSFT_AADEntitlementManagementAccessPackageCatalog.psm1 @@ -465,6 +465,11 @@ function Export-TargetResource foreach ($catalogId in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $config = Get-MgBetaEntitlementManagementAccessPackageCatalog -AccessPackageCatalogId $catalogId $displayedKey = $config.id if (-not [String]::IsNullOrEmpty($config.displayName)) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalogResource/MSFT_AADEntitlementManagementAccessPackageCatalogResource.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalogResource/MSFT_AADEntitlementManagementAccessPackageCatalogResource.psm1 index 7daa8511c4..5b570d0d55 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalogResource/MSFT_AADEntitlementManagementAccessPackageCatalogResource.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementAccessPackageCatalogResource/MSFT_AADEntitlementManagementAccessPackageCatalogResource.psm1 @@ -730,6 +730,11 @@ function Export-TargetResource foreach ($resource in $resources) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$j/$($resources.Count)] $($resource.DisplayName)" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementConnectedOrganization/MSFT_AADEntitlementManagementConnectedOrganization.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementConnectedOrganization/MSFT_AADEntitlementManagementConnectedOrganization.psm1 index abe35a3d41..3927d922f8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementConnectedOrganization/MSFT_AADEntitlementManagementConnectedOrganization.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementConnectedOrganization/MSFT_AADEntitlementManagementConnectedOrganization.psm1 @@ -781,6 +781,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementRoleAssignment/MSFT_AADEntitlementManagementRoleAssignment.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementRoleAssignment/MSFT_AADEntitlementManagementRoleAssignment.psm1 index abfd1c0bba..b3b1c7aadc 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementRoleAssignment/MSFT_AADEntitlementManagementRoleAssignment.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADEntitlementManagementRoleAssignment/MSFT_AADEntitlementManagementRoleAssignment.psm1 @@ -449,6 +449,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADExternalIdentityPolicy/MSFT_AADExternalIdentityPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADExternalIdentityPolicy/MSFT_AADExternalIdentityPolicy.psm1 index eb2f1ed424..b4cc15b5e9 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADExternalIdentityPolicy/MSFT_AADExternalIdentityPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADExternalIdentityPolicy/MSFT_AADExternalIdentityPolicy.psm1 @@ -322,6 +322,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $params = @{ IsSingleInstance = 'Yes' AllowExternalIdentitiesToLeave = $true diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroup/MSFT_AADGroup.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroup/MSFT_AADGroup.psm1 index 162a88e537..acc0ae91b1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroup/MSFT_AADGroup.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroup/MSFT_AADGroup.psm1 @@ -1153,6 +1153,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($group in $Script:exportedGroups) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedGroups.Count)] $($group.DisplayName)" -NoNewline $Params = @{ ApplicationSecret = $ApplicationSecret diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroupLifecyclePolicy/MSFT_AADGroupLifecyclePolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroupLifecyclePolicy/MSFT_AADGroupLifecyclePolicy.psm1 index 902bddd619..90aca0af25 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroupLifecyclePolicy/MSFT_AADGroupLifecyclePolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroupLifecyclePolicy/MSFT_AADGroupLifecyclePolicy.psm1 @@ -407,6 +407,11 @@ function Export-TargetResource $principal = '' # Principal represents the "NetBios" name of the tenant (e.g. the M365DSC part of M365DSC.onmicrosoft.com) try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + if ($ConnectionMode -eq 'ServicePrincipalWithThumbprint') { $organization = Get-M365DSCTenantDomain -ApplicationId $ApplicationId ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroupsNamingPolicy/MSFT_AADGroupsNamingPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroupsNamingPolicy/MSFT_AADGroupsNamingPolicy.psm1 index dc53ccaa7d..7c5ea39a5c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroupsNamingPolicy/MSFT_AADGroupsNamingPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroupsNamingPolicy/MSFT_AADGroupsNamingPolicy.psm1 @@ -363,6 +363,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $dscContent = '' $Params = @{ ApplicationId = $ApplicationId diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroupsSettings/MSFT_AADGroupsSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroupsSettings/MSFT_AADGroupsSettings.psm1 index 0567c48a32..91ece280a4 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroupsSettings/MSFT_AADGroupsSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADGroupsSettings/MSFT_AADGroupsSettings.psm1 @@ -514,6 +514,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ ApplicationId = $ApplicationId TenantId = $TenantId diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADNamedLocationPolicy/MSFT_AADNamedLocationPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADNamedLocationPolicy/MSFT_AADNamedLocationPolicy.psm1 index f2c5ca078e..b395185678 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADNamedLocationPolicy/MSFT_AADNamedLocationPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADNamedLocationPolicy/MSFT_AADNamedLocationPolicy.psm1 @@ -497,6 +497,11 @@ function Export-TargetResource } foreach ($AADNamedLocation in $AADNamedLocations) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AADNamedLocations.Count)] $($AADNamedLocation.DisplayName)" -NoNewline $Params = @{ ApplicationSecret = $ApplicationSecret diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADRoleDefinition/MSFT_AADRoleDefinition.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADRoleDefinition/MSFT_AADRoleDefinition.psm1 index 1bc4869d45..c4ba83eb52 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADRoleDefinition/MSFT_AADRoleDefinition.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADRoleDefinition/MSFT_AADRoleDefinition.psm1 @@ -461,6 +461,11 @@ function Export-TargetResource } foreach ($AADRoleDefinition in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedInstances.Count)] $($AADRoleDefinition.DisplayName)" -NoNewline $Params = @{ Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADRoleEligibilityScheduleRequest/MSFT_AADRoleEligibilityScheduleRequest.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADRoleEligibilityScheduleRequest/MSFT_AADRoleEligibilityScheduleRequest.psm1 index 5c52c84220..9dd27478e6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADRoleEligibilityScheduleRequest/MSFT_AADRoleEligibilityScheduleRequest.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADRoleEligibilityScheduleRequest/MSFT_AADRoleEligibilityScheduleRequest.psm1 @@ -835,6 +835,11 @@ function Export-TargetResource } foreach ($request in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $request.Id Write-Host " |---[$i/$($Script:exportedInstances.Count)] $displayedKey" -NoNewline diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADRoleSetting/MSFT_AADRoleSetting.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADRoleSetting/MSFT_AADRoleSetting.psm1 index aae2837f5d..ee5cc80c73 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADRoleSetting/MSFT_AADRoleSetting.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADRoleSetting/MSFT_AADRoleSetting.psm1 @@ -1482,6 +1482,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($role in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedInstances.Count)] $($role.DisplayName)" -NoNewline $Params = @{ Id = $role.Id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADSecurityDefaults/MSFT_AADSecurityDefaults.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADSecurityDefaults/MSFT_AADSecurityDefaults.psm1 index bc06162e0a..2f7fcdde9a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADSecurityDefaults/MSFT_AADSecurityDefaults.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADSecurityDefaults/MSFT_AADSecurityDefaults.psm1 @@ -333,6 +333,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ ApplicationId = $ApplicationId TenantId = $TenantId diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADServicePrincipal/MSFT_AADServicePrincipal.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADServicePrincipal/MSFT_AADServicePrincipal.psm1 index 2568baf468..2613ce6640 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADServicePrincipal/MSFT_AADServicePrincipal.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADServicePrincipal/MSFT_AADServicePrincipal.psm1 @@ -697,6 +697,11 @@ function Export-TargetResource -ErrorAction Stop foreach ($AADServicePrincipal in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedInstances.Count)] $($AADServicePrincipal.DisplayName)" -NoNewline $Params = @{ Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADSocialIdentityProvider/MSFT_AADSocialIdentityProvider.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADSocialIdentityProvider/MSFT_AADSocialIdentityProvider.psm1 index e7376943d9..31ed6bb584 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADSocialIdentityProvider/MSFT_AADSocialIdentityProvider.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADSocialIdentityProvider/MSFT_AADSocialIdentityProvider.psm1 @@ -378,6 +378,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.DisplayName Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADTenantDetails/MSFT_AADTenantDetails.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADTenantDetails/MSFT_AADTenantDetails.psm1 index f7db6b1e4c..ecf50fe040 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADTenantDetails/MSFT_AADTenantDetails.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADTenantDetails/MSFT_AADTenantDetails.psm1 @@ -364,6 +364,11 @@ function Export-TargetResource $dscContent = '' try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $AADTenantDetails = Get-MgBetaOrganization -ErrorAction Stop $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADTokenLifetimePolicy/MSFT_AADTokenLifetimePolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADTokenLifetimePolicy/MSFT_AADTokenLifetimePolicy.psm1 index e8595381fa..9da74687ae 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADTokenLifetimePolicy/MSFT_AADTokenLifetimePolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADTokenLifetimePolicy/MSFT_AADTokenLifetimePolicy.psm1 @@ -398,6 +398,11 @@ function Export-TargetResource } foreach ($AADPolicy in $AADPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AADPolicies.Count)] $($AADPolicy.DisplayName)" -NoNewline $Params = @{ Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_AADUser/MSFT_AADUser.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_AADUser/MSFT_AADUser.psm1 index 8f30f6554b..4ad23844a0 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_AADUser/MSFT_AADUser.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_AADUser/MSFT_AADUser.psm1 @@ -1065,6 +1065,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($user in $Script:M365DSCExportInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:M365DSCExportInstances.Length)] $($user.UserPrincipalName)" -NoNewline $userUPN = $user.UserPrincipalName if (-not [System.String]::IsNullOrEmpty($userUPN)) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAcceptedDomain/MSFT_EXOAcceptedDomain.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAcceptedDomain/MSFT_EXOAcceptedDomain.psm1 index b189d55772..71a19658c7 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAcceptedDomain/MSFT_EXOAcceptedDomain.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAcceptedDomain/MSFT_EXOAcceptedDomain.psm1 @@ -392,6 +392,11 @@ function Export-TargetResource } foreach ($domain in $AllAcceptedDomains) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllAcceptedDomains.Count)] $($domain.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOActiveSyncDeviceAccessRule/MSFT_EXOActiveSyncDeviceAccessRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOActiveSyncDeviceAccessRule/MSFT_EXOActiveSyncDeviceAccessRule.psm1 index 3d973c5c6d..658a073396 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOActiveSyncDeviceAccessRule/MSFT_EXOActiveSyncDeviceAccessRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOActiveSyncDeviceAccessRule/MSFT_EXOActiveSyncDeviceAccessRule.psm1 @@ -413,6 +413,11 @@ function Export-TargetResource } foreach ($ActiveSyncDeviceAccessRule in $AllActiveSyncDeviceAccessRules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllActiveSyncDeviceAccessRules.Count)] $($ActiveSyncDeviceAccessRule.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAddressBookPolicy/MSFT_EXOAddressBookPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAddressBookPolicy/MSFT_EXOAddressBookPolicy.psm1 index 06f2ec8882..7c77e8bbf1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAddressBookPolicy/MSFT_EXOAddressBookPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAddressBookPolicy/MSFT_EXOAddressBookPolicy.psm1 @@ -425,6 +425,11 @@ function Export-TargetResource { Write-Host " |---[$i/$($AllAddressBookPolicies.Count)] $($AddressBookPolicy.Name)" -NoNewline + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ Name = $AddressBookPolicy.Name Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAddressList/MSFT_EXOAddressList.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAddressList/MSFT_EXOAddressList.psm1 index 1703d6a0ce..c244a92033 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAddressList/MSFT_EXOAddressList.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAddressList/MSFT_EXOAddressList.psm1 @@ -748,6 +748,11 @@ function Export-TargetResource foreach ($addressList in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedInstances.Count)] $($addressList.Name)" -NoNewline $params = @{ Name = $addressList.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishPolicy/MSFT_EXOAntiPhishPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishPolicy/MSFT_EXOAntiPhishPolicy.psm1 index e90d7c6a79..d849dc40ff 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishPolicy/MSFT_EXOAntiPhishPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishPolicy/MSFT_EXOAntiPhishPolicy.psm1 @@ -829,6 +829,11 @@ function Export-TargetResource } foreach ($Policy in $AntiPhishPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AntiphishPolicies.Length)] $($Policy.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishRule/MSFT_EXOAntiPhishRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishRule/MSFT_EXOAntiPhishRule.psm1 index 4bd8bf5c60..c041291da6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishRule/MSFT_EXOAntiPhishRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAntiPhishRule/MSFT_EXOAntiPhishRule.psm1 @@ -557,6 +557,11 @@ function Export-TargetResource $i = 1 foreach ($Rule in $AntiPhishRules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AntiPhishRules.Length)] $($Rule.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOApplicationAccessPolicy/MSFT_EXOApplicationAccessPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOApplicationAccessPolicy/MSFT_EXOApplicationAccessPolicy.psm1 index 424e45649c..edc165286e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOApplicationAccessPolicy/MSFT_EXOApplicationAccessPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOApplicationAccessPolicy/MSFT_EXOApplicationAccessPolicy.psm1 @@ -481,6 +481,11 @@ function Export-TargetResource $i = 1 foreach ($ApplicationAccessPolicy in $AllApplicationAccessPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllApplicationAccessPolicies.Count)] $($ApplicationAccessPolicy.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAtpPolicyForO365/MSFT_EXOAtpPolicyForO365.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAtpPolicyForO365/MSFT_EXOAtpPolicyForO365.psm1 index b76d67cc4d..0cffbfff43 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAtpPolicyForO365/MSFT_EXOAtpPolicyForO365.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAtpPolicyForO365/MSFT_EXOAtpPolicyForO365.psm1 @@ -408,6 +408,11 @@ function Export-TargetResource $i = 1 foreach ($atpPolicy in $ATPPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($ATPPolicies.Length)] $($atpPolicy.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAuthenticationPolicy/MSFT_EXOAuthenticationPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAuthenticationPolicy/MSFT_EXOAuthenticationPolicy.psm1 index 7006792a66..741cc99558 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAuthenticationPolicy/MSFT_EXOAuthenticationPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAuthenticationPolicy/MSFT_EXOAuthenticationPolicy.psm1 @@ -544,6 +544,11 @@ function Export-TargetResource $i = 1 foreach ($AuthenticationPolicy in $AllAuthenticationPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllAuthenticationPolicies.Count)] $($AuthenticationPolicy.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAuthenticationPolicyAssignment/MSFT_EXOAuthenticationPolicyAssignment.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAuthenticationPolicyAssignment/MSFT_EXOAuthenticationPolicyAssignment.psm1 index 40226ea6ae..4148c8c09a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAuthenticationPolicyAssignment/MSFT_EXOAuthenticationPolicyAssignment.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAuthenticationPolicyAssignment/MSFT_EXOAuthenticationPolicyAssignment.psm1 @@ -360,6 +360,11 @@ function Export-TargetResource foreach ($user in $assignedUsers) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ UserName = $user.UserPrincipalName Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAvailabilityAddressSpace/MSFT_EXOAvailabilityAddressSpace.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAvailabilityAddressSpace/MSFT_EXOAvailabilityAddressSpace.psm1 index 3c678b7c7c..da3f8cde4e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAvailabilityAddressSpace/MSFT_EXOAvailabilityAddressSpace.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAvailabilityAddressSpace/MSFT_EXOAvailabilityAddressSpace.psm1 @@ -516,6 +516,11 @@ function Export-TargetResource $i = 1 foreach ($AvailabilityAddressSpace in $AvailabilityAddressSpaces) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AvailabilityAddressSpaces.length)] $($AvailabilityAddressSpace.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAvailabilityConfig/MSFT_EXOAvailabilityConfig.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAvailabilityConfig/MSFT_EXOAvailabilityConfig.psm1 index 574838188f..7050ec3891 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAvailabilityConfig/MSFT_EXOAvailabilityConfig.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOAvailabilityConfig/MSFT_EXOAvailabilityConfig.psm1 @@ -340,6 +340,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + if ($null -eq (Get-Command Get-AvailabilityConfig -ErrorAction SilentlyContinue)) { Write-Host "`r`n $($Global:M365DSCEmojiRedX) The specified account doesn't have permissions to access Availibility Config" diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCASMailboxPlan/MSFT_EXOCASMailboxPlan.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCASMailboxPlan/MSFT_EXOCASMailboxPlan.psm1 index 8c8427a99d..0b78d746e2 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCASMailboxPlan/MSFT_EXOCASMailboxPlan.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCASMailboxPlan/MSFT_EXOCASMailboxPlan.psm1 @@ -431,6 +431,11 @@ function Export-TargetResource $i = 1 foreach ($CASMailboxPlan in $CASMailboxPlans) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($CASMailboxPlans.Count)] $($CASMailboxPlan.Identity.Split('-')[0])" -NoNewline $Params = @{ Identity = $CASMailboxPlan.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCASMailboxSettings/MSFT_EXOCASMailboxSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCASMailboxSettings/MSFT_EXOCASMailboxSettings.psm1 index aa7fce33bc..7dd5b109f6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCASMailboxSettings/MSFT_EXOCASMailboxSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCASMailboxSettings/MSFT_EXOCASMailboxSettings.psm1 @@ -791,6 +791,11 @@ function Export-TargetResource $mailboxName = $mailbox.Identity if (![System.String]::IsNullOrEmpty($mailboxName)) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ Credential = $Credential Identity = $mailboxName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCalendarProcessing/MSFT_EXOCalendarProcessing.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCalendarProcessing/MSFT_EXOCalendarProcessing.psm1 index 154b3c1f0a..5ece0f3e50 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCalendarProcessing/MSFT_EXOCalendarProcessing.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOCalendarProcessing/MSFT_EXOCalendarProcessing.psm1 @@ -901,6 +901,11 @@ function Export-TargetResource $i = 1 foreach ($mailbox in $mailboxes) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($mailboxes.Count)] $($mailbox.Identity.Split('-')[0])" -NoNewline $Params = @{ Identity = $mailbox.UserPrincipalName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOClientAccessRule/MSFT_EXOClientAccessRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOClientAccessRule/MSFT_EXOClientAccessRule.psm1 index 78d2b056f9..3748ed1e45 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOClientAccessRule/MSFT_EXOClientAccessRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOClientAccessRule/MSFT_EXOClientAccessRule.psm1 @@ -568,6 +568,11 @@ function Export-TargetResource } foreach ($ClientAccessRule in $ClientAccessRules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($ClientAccessRules.Length)] $($ClientAccessRule.Identity)" -NoNewline $Params = @{ Identity = $ClientAccessRule.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODataClassification/MSFT_EXODataClassification.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODataClassification/MSFT_EXODataClassification.psm1 index 82ccb90d4e..8c5183e113 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODataClassification/MSFT_EXODataClassification.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODataClassification/MSFT_EXODataClassification.psm1 @@ -456,6 +456,11 @@ function Export-TargetResource $i = 1 foreach ($DataClassification in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedInstances.Length)] $($DataClassification.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODataEncryptionPolicy/MSFT_EXODataEncryptionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODataEncryptionPolicy/MSFT_EXODataEncryptionPolicy.psm1 index 25e7f2450c..85cf12ad72 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODataEncryptionPolicy/MSFT_EXODataEncryptionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODataEncryptionPolicy/MSFT_EXODataEncryptionPolicy.psm1 @@ -439,6 +439,11 @@ function Export-TargetResource $i = 1 foreach ($DataEncryptionPolicy in $DataEncryptionPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($DataEncryptionPolicies.Length)] $($DataEncryptionPolicy.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODistributionGroup/MSFT_EXODistributionGroup.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODistributionGroup/MSFT_EXODistributionGroup.psm1 index e36f2aab2f..ac74ceb1bf 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODistributionGroup/MSFT_EXODistributionGroup.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODistributionGroup/MSFT_EXODistributionGroup.psm1 @@ -1057,6 +1057,11 @@ function Export-TargetResource foreach ($distributionGroup in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedInstances.Count)] $($distributionGroup.Identity)" -NoNewline $params = @{ Identity = $distributionGroup.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.psm1 index 96cd6d0822..9e5fc46c6d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXODkimSigningConfig/MSFT_EXODkimSigningConfig.psm1 @@ -441,6 +441,11 @@ function Export-TargetResource $dscContent = '' foreach ($DkimSigningConfig in $DkimSigningConfigs) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($DkimSigningConfigs.Length)] $($DkimSigningConfig.Identity)" -NoNewline $Params = @{ Identity = $DkimSigningConfig.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEmailAddressPolicy/MSFT_EXOEmailAddressPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEmailAddressPolicy/MSFT_EXOEmailAddressPolicy.psm1 index 3b30ffb9a3..cade902f41 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEmailAddressPolicy/MSFT_EXOEmailAddressPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOEmailAddressPolicy/MSFT_EXOEmailAddressPolicy.psm1 @@ -448,6 +448,11 @@ function Export-TargetResource $i = 1 foreach ($EmailAddressPolicy in $AllEmailAddressPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllEmailAddressPolicies.Count)] $($EmailAddressPolicy.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOGlobalAddressList/MSFT_EXOGlobalAddressList.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOGlobalAddressList/MSFT_EXOGlobalAddressList.psm1 index 333fe46bee..c321c4e7a0 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOGlobalAddressList/MSFT_EXOGlobalAddressList.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOGlobalAddressList/MSFT_EXOGlobalAddressList.psm1 @@ -722,6 +722,11 @@ function Export-TargetResource $i = 1 foreach ($GlobalAddressList in $AllGlobalAddressLists) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllGlobalAddressLists.Count)] $($GlobalAddressList.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOGroupSettings/MSFT_EXOGroupSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOGroupSettings/MSFT_EXOGroupSettings.psm1 index b1b09ace3b..40dcbe242d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOGroupSettings/MSFT_EXOGroupSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOGroupSettings/MSFT_EXOGroupSettings.psm1 @@ -1015,6 +1015,11 @@ function Export-TargetResource $groupName = $group.DisplayName if (-not [System.String]::IsNullOrEmpty($groupName)) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ Credential = $Credential DisplayName = $groupName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedConnectionFilterPolicy/MSFT_EXOHostedConnectionFilterPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedConnectionFilterPolicy/MSFT_EXOHostedConnectionFilterPolicy.psm1 index a4ac6e4cd3..0a164d5083 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedConnectionFilterPolicy/MSFT_EXOHostedConnectionFilterPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedConnectionFilterPolicy/MSFT_EXOHostedConnectionFilterPolicy.psm1 @@ -467,6 +467,11 @@ function Export-TargetResource $i = 1 foreach ($HostedConnectionFilterPolicy in $HostedConnectionFilterPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ Credential = $Credential Identity = $HostedConnectionFilterPolicy.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterPolicy/MSFT_EXOHostedContentFilterPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterPolicy/MSFT_EXOHostedContentFilterPolicy.psm1 index 8d5fee9096..971ba90f42 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterPolicy/MSFT_EXOHostedContentFilterPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterPolicy/MSFT_EXOHostedContentFilterPolicy.psm1 @@ -1166,6 +1166,11 @@ function Export-TargetResource $i = 1 foreach ($HostedContentFilterPolicy in $HostedContentFilterPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ Credential = $Credential Identity = $HostedContentFilterPolicy.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 index a18fd597cc..a27fdaf969 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedContentFilterRule/MSFT_EXOHostedContentFilterRule.psm1 @@ -545,6 +545,11 @@ function Export-TargetResource } foreach ($HostedContentFilterRule in $HostedContentFilterRules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($HostedContentFilterRules.Count)] $($HostedContentFilterRule.Identity)" -NoNewline $Params = @{ Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterPolicy/MSFT_EXOHostedOutboundSpamFilterPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterPolicy/MSFT_EXOHostedOutboundSpamFilterPolicy.psm1 index d06181e09a..149c30cc33 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterPolicy/MSFT_EXOHostedOutboundSpamFilterPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterPolicy/MSFT_EXOHostedOutboundSpamFilterPolicy.psm1 @@ -494,6 +494,11 @@ function Export-TargetResource $i = 1 foreach ($HostedOutboundSpamFilterPolicy in $HostedOutboundSpamFilterPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ Credential = $Credential Identity = $HostedOutboundSpamFilterPolicy.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 index f415e87850..41a1d2e016 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOHostedOutboundSpamFilterRule/MSFT_EXOHostedOutboundSpamFilterRule.psm1 @@ -536,6 +536,11 @@ function Export-TargetResource } foreach ($HostedOutboundSpamFilterRule in $HostedOutboundSpamFilterRules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($HostedOutboundSpamFilterRules.Count)] $($HostedOutboundSpamFilterRule.Identity)" -NoNewline $Params = @{ Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOIRMConfiguration/MSFT_EXOIRMConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOIRMConfiguration/MSFT_EXOIRMConfiguration.psm1 index 08bee28244..2bf6a7ff7e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOIRMConfiguration/MSFT_EXOIRMConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOIRMConfiguration/MSFT_EXOIRMConfiguration.psm1 @@ -530,6 +530,11 @@ function Export-TargetResource #endregion try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $IRMConfiguration = Get-IRMConfiguration -ErrorAction Stop $dscContent = '' Write-Host "`r`n" -NoNewline diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOInboundConnector/MSFT_EXOInboundConnector.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOInboundConnector/MSFT_EXOInboundConnector.psm1 index 518ff08ff5..d35e231cf6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOInboundConnector/MSFT_EXOInboundConnector.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOInboundConnector/MSFT_EXOInboundConnector.psm1 @@ -595,6 +595,11 @@ function Export-TargetResource $i = 1 foreach ($InboundConnector in $InboundConnectors) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($InboundConnectors.Length)] $($InboundConnector.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOIntraOrganizationConnector/MSFT_EXOIntraOrganizationConnector.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOIntraOrganizationConnector/MSFT_EXOIntraOrganizationConnector.psm1 index 76a1bac3d3..4bfed741b2 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOIntraOrganizationConnector/MSFT_EXOIntraOrganizationConnector.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOIntraOrganizationConnector/MSFT_EXOIntraOrganizationConnector.psm1 @@ -422,6 +422,11 @@ function Export-TargetResource $i = 1 foreach ($IntraOrganizationConnector in $IntraOrganizationConnectors) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($IntraOrganizationConnectors.length)] $($IntraOrganizationConnector.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOJournalRule/MSFT_EXOJournalRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOJournalRule/MSFT_EXOJournalRule.psm1 index e9cdf5815a..eb84f9e020 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOJournalRule/MSFT_EXOJournalRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOJournalRule/MSFT_EXOJournalRule.psm1 @@ -432,6 +432,11 @@ function Export-TargetResource } foreach ($rule in $allRules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($allRules.Length)] $($rule.Name)" -NoNewline $Params = @{ Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailContact/MSFT_EXOMailContact.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailContact/MSFT_EXOMailContact.psm1 index d6017d6a7e..8553bf9155 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailContact/MSFT_EXOMailContact.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailContact/MSFT_EXOMailContact.psm1 @@ -828,6 +828,11 @@ function Export-TargetResource foreach ($contact in $contactList) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($contactList.Count)] $($contact.Name)" -NoNewline $params = @{ Name = $contact.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailTips/MSFT_EXOMailTips.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailTips/MSFT_EXOMailTips.psm1 index e092d6ba8f..cff7f59a8e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailTips/MSFT_EXOMailTips.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailTips/MSFT_EXOMailTips.psm1 @@ -417,6 +417,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ Credential = $Credential IsSingleInstance = 'Yes' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxAutoReplyConfiguration/MSFT_EXOMailboxAutoReplyConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxAutoReplyConfiguration/MSFT_EXOMailboxAutoReplyConfiguration.psm1 index 8836713c34..e5dfa230d6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxAutoReplyConfiguration/MSFT_EXOMailboxAutoReplyConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxAutoReplyConfiguration/MSFT_EXOMailboxAutoReplyConfiguration.psm1 @@ -531,6 +531,11 @@ function Export-TargetResource } foreach ($mailbox in $mailboxes) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($mailboxes.Length)] $($mailbox.UserPrincipalName)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxCalendarFolder/MSFT_EXOMailboxCalendarFolder.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxCalendarFolder/MSFT_EXOMailboxCalendarFolder.psm1 index 444b74baf0..88cdf82dde 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxCalendarFolder/MSFT_EXOMailboxCalendarFolder.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxCalendarFolder/MSFT_EXOMailboxCalendarFolder.psm1 @@ -437,6 +437,11 @@ function Export-TargetResource $i = 1 foreach ($mailbox in $mailboxes) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + # Name of calendar folder depends on the language of the mailbox $calendarFolderName = (Get-MailboxFolderStatistics -Identity $($mailbox.UserPrincipalName) -FolderScope Calendar | Where-Object {$_.FolderType -eq 'Calendar'}).Name $folderPath = $mailbox.UserPrincipalName + ':\' + $calendarFolderName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxPermission/MSFT_EXOMailboxPermission.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxPermission/MSFT_EXOMailboxPermission.psm1 index c71dfbdaa0..39a70e00e2 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxPermission/MSFT_EXOMailboxPermission.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxPermission/MSFT_EXOMailboxPermission.psm1 @@ -440,6 +440,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($permission in $permissions) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$j/$($permissions.Count)] $($permission.Identity)" -NoNewline $Params = @{ Identity = $mailbox.UserPrincipalName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxPlan/MSFT_EXOMailboxPlan.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxPlan/MSFT_EXOMailboxPlan.psm1 index 87885d6e12..6156a3c4a4 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxPlan/MSFT_EXOMailboxPlan.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxPlan/MSFT_EXOMailboxPlan.psm1 @@ -480,6 +480,11 @@ function Export-TargetResource $i = 1 foreach ($MailboxPlan in $MailboxPlans) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($MailboxPlans.Count)] $($MailboxPlan.Identity.Split('-')[0])" -NoNewline $Params = @{ Identity = $MailboxPlan.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxSettings/MSFT_EXOMailboxSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxSettings/MSFT_EXOMailboxSettings.psm1 index 29434ea502..2c42f8f150 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxSettings/MSFT_EXOMailboxSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMailboxSettings/MSFT_EXOMailboxSettings.psm1 @@ -366,6 +366,11 @@ function Export-TargetResource if (-not [System.String]::IsNullOrEmpty($DisplayNameValue)) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ Credential = $Credential DisplayName = $DisplayNameValue diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMalwareFilterPolicy/MSFT_EXOMalwareFilterPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMalwareFilterPolicy/MSFT_EXOMalwareFilterPolicy.psm1 index 122b6e82da..a7403b6c22 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMalwareFilterPolicy/MSFT_EXOMalwareFilterPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMalwareFilterPolicy/MSFT_EXOMalwareFilterPolicy.psm1 @@ -600,6 +600,11 @@ function Export-TargetResource $i = 1 foreach ($MalwareFilterPolicy in $MalwareFilterPolicys) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($MalwareFilterPolicys.length)] $($MalwareFilterPolicy.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMalwareFilterRule/MSFT_EXOMalwareFilterRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMalwareFilterRule/MSFT_EXOMalwareFilterRule.psm1 index ccd57e54a5..535503d9d3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMalwareFilterRule/MSFT_EXOMalwareFilterRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMalwareFilterRule/MSFT_EXOMalwareFilterRule.psm1 @@ -502,6 +502,11 @@ function Export-TargetResource } foreach ($MalwareFilterRule in $MalwareFilterRules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($MalwareFilterRules.length)] $($MalwareFilterRule.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOManagementRole/MSFT_EXOManagementRole.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOManagementRole/MSFT_EXOManagementRole.psm1 index 7326dd0de1..fc30a27966 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOManagementRole/MSFT_EXOManagementRole.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOManagementRole/MSFT_EXOManagementRole.psm1 @@ -400,6 +400,11 @@ function Export-TargetResource $i = 1 foreach ($ManagementRole in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedInstances.Count)] $($ManagementRole.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOManagementRoleAssignment/MSFT_EXOManagementRoleAssignment.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOManagementRoleAssignment/MSFT_EXOManagementRoleAssignment.psm1 index d3c750784b..bd4575f6f3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOManagementRoleAssignment/MSFT_EXOManagementRoleAssignment.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOManagementRoleAssignment/MSFT_EXOManagementRoleAssignment.psm1 @@ -598,6 +598,11 @@ function Export-TargetResource $i = 1 foreach ($assignment in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedInstances.Count)] $($assignment.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOManagementRoleEntry/MSFT_EXOManagementRoleEntry.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOManagementRoleEntry/MSFT_EXOManagementRoleEntry.psm1 index 7fb3e69a7a..bbdde00cf5 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOManagementRoleEntry/MSFT_EXOManagementRoleEntry.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOManagementRoleEntry/MSFT_EXOManagementRoleEntry.psm1 @@ -373,6 +373,11 @@ function Export-TargetResource $i = 1 foreach ($roleEntry in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedInstances.Count)] $($roleEntry.Identity + "\" + $roleEntry.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMessageClassification/MSFT_EXOMessageClassification.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMessageClassification/MSFT_EXOMessageClassification.psm1 index 861a093759..73eb17e9c8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMessageClassification/MSFT_EXOMessageClassification.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMessageClassification/MSFT_EXOMessageClassification.psm1 @@ -506,6 +506,11 @@ function Export-TargetResource $i = 1 foreach ($MessageClassification in $MessageClassifications) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($MessageClassifications.Length)] $($MessageClassification.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMobileDeviceMailboxPolicy/MSFT_EXOMobileDeviceMailboxPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMobileDeviceMailboxPolicy/MSFT_EXOMobileDeviceMailboxPolicy.psm1 index 90c21b903f..9585ca6e9e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMobileDeviceMailboxPolicy/MSFT_EXOMobileDeviceMailboxPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOMobileDeviceMailboxPolicy/MSFT_EXOMobileDeviceMailboxPolicy.psm1 @@ -1146,6 +1146,11 @@ function Export-TargetResource $i = 1 foreach ($MobileDeviceMailboxPolicy in $AllMobileDeviceMailboxPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllMobileDeviceMailboxPolicies.Length)] $($MobileDeviceMailboxPolicy.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOMEConfiguration/MSFT_EXOOMEConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOMEConfiguration/MSFT_EXOOMEConfiguration.psm1 index fcc03cb9f6..a5ed1901fc 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOMEConfiguration/MSFT_EXOOMEConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOMEConfiguration/MSFT_EXOOMEConfiguration.psm1 @@ -503,6 +503,11 @@ function Export-TargetResource $i = 1 foreach ($OMEConfiguration in $OMEConfigurations) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($OMEConfigurations.Length)] $($OMEConfiguration.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOfflineAddressBook/MSFT_EXOOfflineAddressBook.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOfflineAddressBook/MSFT_EXOOfflineAddressBook.psm1 index 59a03520ea..569a924c7f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOfflineAddressBook/MSFT_EXOOfflineAddressBook.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOfflineAddressBook/MSFT_EXOOfflineAddressBook.psm1 @@ -436,6 +436,11 @@ function Export-TargetResource $i = 1 foreach ($OfflineAddressBook in $AllOfflineAddressBooks) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllOfflineAddressBooks.Count)] $($OfflineAddressBook.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOnPremisesOrganization/MSFT_EXOOnPremisesOrganization.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOnPremisesOrganization/MSFT_EXOOnPremisesOrganization.psm1 index 4bd869b2c0..183afecfed 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOnPremisesOrganization/MSFT_EXOOnPremisesOrganization.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOnPremisesOrganization/MSFT_EXOOnPremisesOrganization.psm1 @@ -472,6 +472,11 @@ function Export-TargetResource $i = 1 foreach ($OnPremisesOrganization in $AllOnPremisesOrganizations) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllOnPremisesOrganizations.Count)] $($OnPremisesOrganization.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOrganizationConfig/MSFT_EXOOrganizationConfig.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOrganizationConfig/MSFT_EXOOrganizationConfig.psm1 index 0502e3d447..5bff23026f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOrganizationConfig/MSFT_EXOOrganizationConfig.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOrganizationConfig/MSFT_EXOOrganizationConfig.psm1 @@ -1748,6 +1748,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOrganizationRelationship/MSFT_EXOOrganizationRelationship.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOrganizationRelationship/MSFT_EXOOrganizationRelationship.psm1 index 7964cc32fe..cb9a0492db 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOrganizationRelationship/MSFT_EXOOrganizationRelationship.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOrganizationRelationship/MSFT_EXOOrganizationRelationship.psm1 @@ -711,6 +711,11 @@ function Export-TargetResource $i = 1 foreach ($relationship in $AllOrgRelationships) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllOrgRelationships.Length)] $($relationship.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOutboundConnector/MSFT_EXOOutboundConnector.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOutboundConnector/MSFT_EXOOutboundConnector.psm1 index 26a89cdf39..b45fdedb17 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOutboundConnector/MSFT_EXOOutboundConnector.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOutboundConnector/MSFT_EXOOutboundConnector.psm1 @@ -591,6 +591,11 @@ function Export-TargetResource $i = 1 foreach ($OutboundConnector in $OutboundConnectors) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($OutboundConnectors.Length)] $($OutboundConnector.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOwaMailboxPolicy/MSFT_EXOOwaMailboxPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOwaMailboxPolicy/MSFT_EXOOwaMailboxPolicy.psm1 index ea6e166391..a87e051558 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOwaMailboxPolicy/MSFT_EXOOwaMailboxPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOOwaMailboxPolicy/MSFT_EXOOwaMailboxPolicy.psm1 @@ -1499,6 +1499,11 @@ function Export-TargetResource $i = 1 foreach ($OwaMailboxPolicy in $AllOwaMailboxPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllOwaMailboxPolicies.Length)] $($OwaMailboxPolicy.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPartnerApplication/MSFT_EXOPartnerApplication.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPartnerApplication/MSFT_EXOPartnerApplication.psm1 index bba995959f..bf7a6671f8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPartnerApplication/MSFT_EXOPartnerApplication.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPartnerApplication/MSFT_EXOPartnerApplication.psm1 @@ -450,6 +450,11 @@ function Export-TargetResource $i = 1 foreach ($PartnerApplication in $AllPartnerApplications) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllPartnerApplications.Length)] $($PartnerApplication.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPerimeterConfiguration/MSFT_EXOPerimeterConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPerimeterConfiguration/MSFT_EXOPerimeterConfiguration.psm1 index 5dd3d18775..a7a96b4e7b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPerimeterConfiguration/MSFT_EXOPerimeterConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPerimeterConfiguration/MSFT_EXOPerimeterConfiguration.psm1 @@ -342,6 +342,11 @@ function Export-TargetResource #endregion try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $PerimeterConfiguration = Get-PerimeterConfig 2>&1 if ($null -ne ($PerimeterConfiguration | Where-Object { $_.gettype().Name -like '*ErrorRecord*' })) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPlace/MSFT_EXOPlace.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPlace/MSFT_EXOPlace.psm1 index 36338697c8..227fc1f57e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPlace/MSFT_EXOPlace.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPlace/MSFT_EXOPlace.psm1 @@ -635,6 +635,11 @@ function Export-TargetResource $i = 1 foreach ($place in $places) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($places.Length)] $($place.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPolicyTipConfig/MSFT_EXOPolicyTipConfig.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPolicyTipConfig/MSFT_EXOPolicyTipConfig.psm1 index a4ad841edb..750cd9ee91 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPolicyTipConfig/MSFT_EXOPolicyTipConfig.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOPolicyTipConfig/MSFT_EXOPolicyTipConfig.psm1 @@ -388,6 +388,11 @@ function Export-TargetResource } foreach ($PolicyTipConfig in $AllPolicyTips) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllPolicyTips.Length)] $($PolicyTipConfig.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOQuarantinePolicy/MSFT_EXOQuarantinePolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOQuarantinePolicy/MSFT_EXOQuarantinePolicy.psm1 index 6d39166706..ac155325d0 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOQuarantinePolicy/MSFT_EXOQuarantinePolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOQuarantinePolicy/MSFT_EXOQuarantinePolicy.psm1 @@ -641,6 +641,11 @@ function Export-TargetResource $i = 1 foreach ($QuarantinePolicy in $QuarantinePolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($QuarantinePolicies.length)] $($QuarantinePolicy.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXORecipientPermission/MSFT_EXORecipientPermission.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXORecipientPermission/MSFT_EXORecipientPermission.psm1 index 5456dd4a63..1253a813fb 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXORecipientPermission/MSFT_EXORecipientPermission.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXORecipientPermission/MSFT_EXORecipientPermission.psm1 @@ -448,6 +448,11 @@ function Export-TargetResource $ObjectGuid = [System.Guid]::empty foreach ($recipientPermission in $recipientPermissions) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $IdentityValue = $recipientPermission.Identity if ([System.Guid]::TryParse($IdentityValue,[System.Management.Automation.PSReference]$ObjectGuid)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXORemoteDomain/MSFT_EXORemoteDomain.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXORemoteDomain/MSFT_EXORemoteDomain.psm1 index 3455ff793b..823e835ac2 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXORemoteDomain/MSFT_EXORemoteDomain.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXORemoteDomain/MSFT_EXORemoteDomain.psm1 @@ -683,6 +683,11 @@ function Export-TargetResource $i = 1 foreach ($domain in $AllRemoteDomains) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllRemoteDomains.Length)] $($domain.Identity)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOReportSubmissionPolicy/MSFT_EXOReportSubmissionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOReportSubmissionPolicy/MSFT_EXOReportSubmissionPolicy.psm1 index 1d0c2babee..fc70da66fa 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOReportSubmissionPolicy/MSFT_EXOReportSubmissionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOReportSubmissionPolicy/MSFT_EXOReportSubmissionPolicy.psm1 @@ -675,6 +675,11 @@ function Export-TargetResource Write-Host " |---Export Default ReportSubmissionPolicy" -NoNewline + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ Credential = $Credential ApplicationId = $ApplicationId diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOReportSubmissionRule/MSFT_EXOReportSubmissionRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOReportSubmissionRule/MSFT_EXOReportSubmissionRule.psm1 index 2944c3fc9b..cb3069e680 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOReportSubmissionRule/MSFT_EXOReportSubmissionRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOReportSubmissionRule/MSFT_EXOReportSubmissionRule.psm1 @@ -406,6 +406,11 @@ function Export-TargetResource Write-Host " |---Export ReportSubmissionRule" -NoNewline + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ Identity = $ReportSubmissionRule.Identity Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOResourceConfiguration/MSFT_EXOResourceConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOResourceConfiguration/MSFT_EXOResourceConfiguration.psm1 index 0ec5602be7..70dd2d67d6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOResourceConfiguration/MSFT_EXOResourceConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOResourceConfiguration/MSFT_EXOResourceConfiguration.psm1 @@ -354,6 +354,11 @@ function Export-TargetResource Write-Host " |---[1/1] $($ResourceConfiguration.Identity)" -NoNewline + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXORoleAssignmentPolicy/MSFT_EXORoleAssignmentPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXORoleAssignmentPolicy/MSFT_EXORoleAssignmentPolicy.psm1 index 1c55540c38..37a5795d20 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXORoleAssignmentPolicy/MSFT_EXORoleAssignmentPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXORoleAssignmentPolicy/MSFT_EXORoleAssignmentPolicy.psm1 @@ -436,6 +436,11 @@ function Export-TargetResource $i = 1 foreach ($RoleAssignmentPolicy in $AllRoleAssignmentPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllRoleAssignmentPolicies.Length)] $($RoleAssignmentPolicy.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXORoleGroup/MSFT_EXORoleGroup.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXORoleGroup/MSFT_EXORoleGroup.psm1 index 964a9526ce..44f102c318 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXORoleGroup/MSFT_EXORoleGroup.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXORoleGroup/MSFT_EXORoleGroup.psm1 @@ -430,6 +430,11 @@ function Export-TargetResource $i = 1 foreach ($RoleGroup in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedInstances.Count)] $($RoleGroup.Name)" -NoNewline $roleGroupMember = Get-RoleGroupMember -Identity $RoleGroup.Name | Select-Object DisplayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeAttachmentPolicy/MSFT_EXOSafeAttachmentPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeAttachmentPolicy/MSFT_EXOSafeAttachmentPolicy.psm1 index 8d1edef175..96a586a511 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeAttachmentPolicy/MSFT_EXOSafeAttachmentPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeAttachmentPolicy/MSFT_EXOSafeAttachmentPolicy.psm1 @@ -535,6 +535,11 @@ function Export-TargetResource $i = 1 foreach ($SafeAttachmentPolicy in $SafeAttachmentPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($SafeAttachmentPolicies.Length)] $($SafeAttachmentPolicy.Identity)" -NoNewline $Params = @{ Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeAttachmentRule/MSFT_EXOSafeAttachmentRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeAttachmentRule/MSFT_EXOSafeAttachmentRule.psm1 index 0ea3da3134..9366c81d52 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeAttachmentRule/MSFT_EXOSafeAttachmentRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeAttachmentRule/MSFT_EXOSafeAttachmentRule.psm1 @@ -527,6 +527,11 @@ function Export-TargetResource foreach ($SafeAttachmentRule in $SafeAttachmentRules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($SafeAttachmentRules.Length)] $($SafeAttachmentRule.Identity)" -NoNewline $Params = @{ Identity = $SafeAttachmentRule.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeLinksPolicy/MSFT_EXOSafeLinksPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeLinksPolicy/MSFT_EXOSafeLinksPolicy.psm1 index 69902ad3a4..ae02e155d1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeLinksPolicy/MSFT_EXOSafeLinksPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeLinksPolicy/MSFT_EXOSafeLinksPolicy.psm1 @@ -559,6 +559,11 @@ function Export-TargetResource $i = 1 foreach ($SafeLinksPolicy in $SafeLinksPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($SafeLinksPolicies.Length)] $($SafeLinksPolicy.Name)" -NoNewline $Params = @{ Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeLinksRule/MSFT_EXOSafeLinksRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeLinksRule/MSFT_EXOSafeLinksRule.psm1 index 28e91dde17..f003b215e1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeLinksRule/MSFT_EXOSafeLinksRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSafeLinksRule/MSFT_EXOSafeLinksRule.psm1 @@ -518,6 +518,11 @@ function Export-TargetResource $i = 1 foreach ($SafeLinksRule in $SafeLinksRules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($SafeLinksRules.Length)] $($SafeLinksRule.Identity)" -NoNewline $Params = @{ Identity = $SafeLinksRule.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSharedMailbox/MSFT_EXOSharedMailbox.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSharedMailbox/MSFT_EXOSharedMailbox.psm1 index 1d588b03a9..1047ca25c3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSharedMailbox/MSFT_EXOSharedMailbox.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSharedMailbox/MSFT_EXOSharedMailbox.psm1 @@ -536,6 +536,11 @@ function Export-TargetResource $mailboxName = $mailbox.Name if ($mailboxName) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $params = @{ Identity = $mailbox.Identity Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSharingPolicy/MSFT_EXOSharingPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSharingPolicy/MSFT_EXOSharingPolicy.psm1 index d83f217546..f84f34b127 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSharingPolicy/MSFT_EXOSharingPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOSharingPolicy/MSFT_EXOSharingPolicy.psm1 @@ -412,6 +412,11 @@ function Export-TargetResource $i = 1 foreach ($SharingPolicy in $AllSharingPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllSharingPolicies.Length)] $($SharingPolicy.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportConfig/MSFT_EXOTransportConfig.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportConfig/MSFT_EXOTransportConfig.psm1 index 35d75f5f57..ff303d5e0e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportConfig/MSFT_EXOTransportConfig.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportConfig/MSFT_EXOTransportConfig.psm1 @@ -657,6 +657,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportRule/MSFT_EXOTransportRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportRule/MSFT_EXOTransportRule.psm1 index db57ff8e81..0cea524e88 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportRule/MSFT_EXOTransportRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_EXOTransportRule/MSFT_EXOTransportRule.psm1 @@ -2647,6 +2647,11 @@ function Export-TargetResource } foreach ($TransportRule in $AllTransportRules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($AllTransportRules.Count)] $($TransportRule.Name)" -NoNewline $Params = @{ Name = $TransportRule.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneASRRulesPolicyWindows10/MSFT_IntuneASRRulesPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneASRRulesPolicyWindows10/MSFT_IntuneASRRulesPolicyWindows10.psm1 index 38589d3139..b4f4425256 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneASRRulesPolicyWindows10/MSFT_IntuneASRRulesPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneASRRulesPolicyWindows10/MSFT_IntuneASRRulesPolicyWindows10.psm1 @@ -864,6 +864,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.DisplayName)" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 index 12d2a7fbf2..07e41974cc 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy/MSFT_IntuneAccountProtectionLocalAdministratorPasswordSolutionPolicy.psm1 @@ -700,6 +700,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Name)" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy.psm1 index 563272b1cd..2132f70c8f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy/MSFT_IntuneAccountProtectionLocalUserGroupMembershipPolicy.psm1 @@ -569,6 +569,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Name)" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionPolicy/MSFT_IntuneAccountProtectionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionPolicy/MSFT_IntuneAccountProtectionPolicy.psm1 index 7d44051f40..766b989a5e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionPolicy/MSFT_IntuneAccountProtectionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAccountProtectionPolicy/MSFT_IntuneAccountProtectionPolicy.psm1 @@ -727,6 +727,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.DisplayName)" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 index b77d3ffd54..8e75bb2a1b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog/MSFT_IntuneAntivirusPolicyWindows10SettingCatalog.psm1 @@ -1603,6 +1603,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Name)" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationDevicePolicy/MSFT_IntuneAppConfigurationDevicePolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationDevicePolicy/MSFT_IntuneAppConfigurationDevicePolicy.psm1 index 221e0db766..1f91f9af44 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationDevicePolicy/MSFT_IntuneAppConfigurationDevicePolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationDevicePolicy/MSFT_IntuneAppConfigurationDevicePolicy.psm1 @@ -723,6 +723,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 index 88fe4add9c..74c95a393e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppConfigurationPolicy/MSFT_IntuneAppConfigurationPolicy.psm1 @@ -494,6 +494,11 @@ function Export-TargetResource } foreach ($configPolicy in $configPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($configPolicies.Count)] $($configPolicy.displayName)" -NoNewline $params = @{ Id = $configPolicy.Id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyAndroid/MSFT_IntuneAppProtectionPolicyAndroid.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyAndroid/MSFT_IntuneAppProtectionPolicyAndroid.psm1 index 2e37744f63..93bc056ba5 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyAndroid/MSFT_IntuneAppProtectionPolicyAndroid.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyAndroid/MSFT_IntuneAppProtectionPolicyAndroid.psm1 @@ -1115,6 +1115,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.displayName)" -NoNewline $params = @{ Id = $policy.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyiOS/MSFT_IntuneAppProtectionPolicyiOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyiOS/MSFT_IntuneAppProtectionPolicyiOS.psm1 index fedf500616..5873e4d98e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyiOS/MSFT_IntuneAppProtectionPolicyiOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAppProtectionPolicyiOS/MSFT_IntuneAppProtectionPolicyiOS.psm1 @@ -1166,6 +1166,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.displayName)" -NoNewline $params = @{ Identity = $policy.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneApplicationControlPolicyWindows10/MSFT_IntuneApplicationControlPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneApplicationControlPolicyWindows10/MSFT_IntuneApplicationControlPolicyWindows10.psm1 index b5bbeb6771..7ac473bf71 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneApplicationControlPolicyWindows10/MSFT_IntuneApplicationControlPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneApplicationControlPolicyWindows10/MSFT_IntuneApplicationControlPolicyWindows10.psm1 @@ -498,6 +498,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.DisplayName)" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.psm1 index 106a08ce7e..5afcd37c23 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager/MSFT_IntuneAttackSurfaceReductionRulesPolicyWindows10ConfigManager.psm1 @@ -841,6 +841,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Name)" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceAndAppManagementAssignmentFilter/MSFT_IntuneDeviceAndAppManagementAssignmentFilter.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceAndAppManagementAssignmentFilter/MSFT_IntuneDeviceAndAppManagementAssignmentFilter.psm1 index fcb7a10f6a..e6d5df4f20 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceAndAppManagementAssignmentFilter/MSFT_IntuneDeviceAndAppManagementAssignmentFilter.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceAndAppManagementAssignmentFilter/MSFT_IntuneDeviceAndAppManagementAssignmentFilter.psm1 @@ -427,6 +427,11 @@ function Export-TargetResource foreach ($assignmentFilter in $assignmentFilters) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($assignmentFilters.Count)] $($assignmentFilter.displayName)" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCategory/MSFT_IntuneDeviceCategory.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCategory/MSFT_IntuneDeviceCategory.psm1 index 9a26925424..d7a03e1925 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCategory/MSFT_IntuneDeviceCategory.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCategory/MSFT_IntuneDeviceCategory.psm1 @@ -334,6 +334,11 @@ function Export-TargetResource foreach ($category in $categories) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($categories.Count)] $($category.displayName)" -NoNewline $params = @{ DisplayName = $category.displayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCleanupRule/MSFT_IntuneDeviceCleanupRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCleanupRule/MSFT_IntuneDeviceCleanupRule.psm1 index a32c283aa6..b833981d34 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCleanupRule/MSFT_IntuneDeviceCleanupRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCleanupRule/MSFT_IntuneDeviceCleanupRule.psm1 @@ -354,6 +354,11 @@ function Export-TargetResource foreach ($cleanupRule in $cleanupRules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($cleanupRules.Count)] Cleanup Rule" -NoNewline $params = @{ Enabled = $cleanupRule.deviceInactivityBeforeRetirementInDays -gt 0 diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroid/MSFT_IntuneDeviceCompliancePolicyAndroid.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroid/MSFT_IntuneDeviceCompliancePolicyAndroid.psm1 index a069990578..98ce13e0b3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroid/MSFT_IntuneDeviceCompliancePolicyAndroid.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroid/MSFT_IntuneDeviceCompliancePolicyAndroid.psm1 @@ -830,6 +830,11 @@ function Export-TargetResource } foreach ($configDeviceAndroidPolicy in $configDeviceAndroidPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($configDeviceAndroidPolicies.Count)] $($configDeviceAndroidPolicy.displayName)" -NoNewline $params = @{ DisplayName = $configDeviceAndroidPolicy.displayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner.psm1 index 550b5abbea..68b9a8dfea 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner/MSFT_IntuneDeviceCompliancePolicyAndroidDeviceOwner.psm1 @@ -682,6 +682,11 @@ function Export-TargetResource } foreach ($configDeviceAndroidPolicy in $configDeviceAndroidPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($configDeviceAndroidPolicies.Count)] $($configDeviceAndroidPolicy.displayName)" -NoNewline $params = @{ DisplayName = $configDeviceAndroidPolicy.displayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile.psm1 index 87955c67f5..c3174193fa 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile/MSFT_IntuneDeviceCompliancePolicyAndroidWorkProfile.psm1 @@ -792,6 +792,11 @@ function Export-TargetResource } foreach ($configDeviceAndroidPolicy in $configDeviceAndroidPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($configDeviceAndroidPolicies.Count)] $($configDeviceAndroidPolicy.displayName)" -NoNewline $params = @{ DisplayName = $configDeviceAndroidPolicy.displayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyMacOS/MSFT_IntuneDeviceCompliancePolicyMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyMacOS/MSFT_IntuneDeviceCompliancePolicyMacOS.psm1 index 5515288577..4e144f7826 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyMacOS/MSFT_IntuneDeviceCompliancePolicyMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyMacOS/MSFT_IntuneDeviceCompliancePolicyMacOS.psm1 @@ -742,6 +742,11 @@ function Export-TargetResource foreach ($configDeviceMacOsPolicy in $configDeviceMacOsPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($configDeviceMacOsPolicies.Count)] $($configDeviceMacOsPolicy.displayName)" -NoNewline $params = @{ DisplayName = $configDeviceMacOsPolicy.displayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 index 5add8ab630..8c379006c8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyWindows10/MSFT_IntuneDeviceCompliancePolicyWindows10.psm1 @@ -866,6 +866,11 @@ function Export-TargetResource foreach ($configDeviceWindowsPolicy in $configDeviceWindowsPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($configDeviceWindowsPolicies.Count)] $($configDeviceWindowsPolicy.displayName)" -NoNewline $params = @{ DisplayName = $configDeviceWindowsPolicy.displayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyiOs/MSFT_IntuneDeviceCompliancePolicyiOs.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyiOs/MSFT_IntuneDeviceCompliancePolicyiOs.psm1 index dbb18d9828..c6725cfcf1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyiOs/MSFT_IntuneDeviceCompliancePolicyiOs.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceCompliancePolicyiOs/MSFT_IntuneDeviceCompliancePolicyiOs.psm1 @@ -723,6 +723,11 @@ function Export-TargetResource } foreach ($configDeviceiOsPolicy in $configDeviceiOsPolicies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($configDeviceiOsPolicies.Count)] $($configDeviceiOsPolicy.displayName)" -NoNewline $params = @{ DisplayName = $configDeviceiOsPolicy.displayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 index 49e699d737..3bdc9bb00e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10/MSFT_IntuneDeviceConfigurationAdministrativeTemplatePolicyWindows10.psm1 @@ -842,6 +842,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.psm1 index 353d3c2e67..b503fc1a99 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10/MSFT_IntuneDeviceConfigurationCustomPolicyWindows10.psm1 @@ -610,6 +610,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.psm1 index 50e03fc980..22c604a3af 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10/MSFT_IntuneDeviceConfigurationDefenderForEndpointOnboardingPolicyWindows10.psm1 @@ -615,6 +615,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.psm1 index 891005cab4..364bc7d256 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10/MSFT_IntuneDeviceConfigurationDeliveryOptimizationPolicyWindows10.psm1 @@ -830,6 +830,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10.psm1 index 41cbd98cce..ac08b3827c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10/MSFT_IntuneDeviceConfigurationDomainJoinPolicyWindows10.psm1 @@ -571,6 +571,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 index 634da6ae4a..691e1b536e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10/MSFT_IntuneDeviceConfigurationEmailProfilePolicyWindows10.psm1 @@ -733,6 +733,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 index 6b0ece6e0d..6db06ad4e1 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationEndpointProtectionPolicyWindows10.psm1 @@ -4976,6 +4976,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.psm1 index e14e934998..7fd627da2c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10/MSFT_IntuneDeviceConfigurationFirmwareInterfacePolicyWindows10.psm1 @@ -972,6 +972,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.psm1 index 92e9a68662..b29a7a2e45 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationHealthMonitoringConfigurationPolicyWindows10.psm1 @@ -569,6 +569,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.psm1 index 3611e51591..950b712205 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10/MSFT_IntuneDeviceConfigurationIdentityProtectionPolicyWindows10.psm1 @@ -719,6 +719,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.psm1 index 21703df009..74d471b310 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationImportedPfxCertificatePolicyWindows10.psm1 @@ -633,6 +633,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10.psm1 index 4132864db4..63dc740598 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10/MSFT_IntuneDeviceConfigurationKioskPolicyWindows10.psm1 @@ -799,6 +799,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.psm1 index 966a53527e..748070c6ec 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10/MSFT_IntuneDeviceConfigurationNetworkBoundaryPolicyWindows10.psm1 @@ -564,6 +564,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.psm1 index 5dcee3028d..1cc217249a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationPkcsCertificatePolicyWindows10.psm1 @@ -753,6 +753,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 index 3e403e98ec..ad758895bf 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS/MSFT_IntuneDeviceConfigurationPlatformScriptMacOS.psm1 @@ -374,7 +374,7 @@ function Set-TargetResource } elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') { - Write-Verbose -Message "Removing the Intune Device Configuration Platform Script MacOS with Id {$($currentInstance.Id)}" + Write-Verbose -Message "Removing the Intune Device Configuration Platform Script MacOS with Id {$($currentInstance.Id)}" #region resource generator code Remove-MgBetaDeviceManagementDeviceShellScript -DeviceShellScriptId $currentInstance.Id #endregion @@ -407,7 +407,7 @@ function Test-TargetResource [Parameter()] [System.String] $FileName, - + [Parameter()] [System.Int32] $RetryCount, @@ -612,6 +612,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptWindows/MSFT_IntuneDeviceConfigurationPlatformScriptWindows.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptWindows/MSFT_IntuneDeviceConfigurationPlatformScriptWindows.psm1 index 69fc4522d6..91d197cc24 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptWindows/MSFT_IntuneDeviceConfigurationPlatformScriptWindows.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPlatformScriptWindows/MSFT_IntuneDeviceConfigurationPlatformScriptWindows.psm1 @@ -360,7 +360,7 @@ function Set-TargetResource } elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') { - Write-Verbose -Message "Removing the Intune Device Configuration Platform Script Windows with Id {$($currentInstance.Id)}" + Write-Verbose -Message "Removing the Intune Device Configuration Platform Script Windows with Id {$($currentInstance.Id)}" #region resource generator code Remove-MgBetaDeviceManagementScript -DeviceManagementScriptId $currentInstance.Id #endregion @@ -594,6 +594,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.psm1 index 832d678f09..078bd10418 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceAdministrator.psm1 @@ -1291,6 +1291,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($config.DisplayName)" -NoNewline $params = @{ Id = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner.psm1 index 2a23ae80cb..bf2f8b953b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner/MSFT_IntuneDeviceConfigurationPolicyAndroidDeviceOwner.psm1 @@ -2492,6 +2492,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($config.displayName)" -NoNewline $params = @{ Id = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.psm1 index 8bc5594816..0934801346 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneDeviceConfigurationPolicyAndroidOpenSourceProject.psm1 @@ -752,6 +752,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($config.DisplayName)" -NoNewline $params = @{ Id = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile.psm1 index 667e202147..80d3067e93 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile/MSFT_IntuneDeviceConfigurationPolicyAndroidWorkProfile.psm1 @@ -1102,6 +1102,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.DisplayName)" -NoNewline $params = @{ DisplayName = $policy.DisplayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyMacOS/MSFT_IntuneDeviceConfigurationPolicyMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyMacOS/MSFT_IntuneDeviceConfigurationPolicyMacOS.psm1 index b1bb838ef6..1c54e175cd 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyMacOS/MSFT_IntuneDeviceConfigurationPolicyMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyMacOS/MSFT_IntuneDeviceConfigurationPolicyMacOS.psm1 @@ -1346,6 +1346,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($config.DisplayName)" -NoNewline $params = @{ Id = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationPolicyWindows10.psm1 index 39853a0d10..867c6d4ded 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyWindows10/MSFT_IntuneDeviceConfigurationPolicyWindows10.psm1 @@ -4777,6 +4777,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 index b24f0d023d..639ad188ea 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationPolicyiOS/MSFT_IntuneDeviceConfigurationPolicyiOS.psm1 @@ -3083,6 +3083,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($config.displayName)" -NoNewline $params = @{ Id = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10.psm1 index 43a2d699ac..6c7ac74845 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationSCEPCertificatePolicyWindows10.psm1 @@ -902,6 +902,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.psm1 index e248a0a1dc..b00f8462b6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10/MSFT_IntuneDeviceConfigurationSecureAssessmentPolicyWindows10.psm1 @@ -610,6 +610,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.psm1 index 3fb7334c67..2c5f313cde 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10/MSFT_IntuneDeviceConfigurationSharedMultiDevicePolicyWindows10.psm1 @@ -831,6 +831,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.psm1 index 9f2fef6f4d..6a7885b2ff 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10/MSFT_IntuneDeviceConfigurationTrustedCertificatePolicyWindows10.psm1 @@ -545,6 +545,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10.psm1 index ac21beeb78..86e96f8481 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10/MSFT_IntuneDeviceConfigurationVpnPolicyWindows10.psm1 @@ -1073,6 +1073,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10.psm1 index 6d3c8d0894..b56b61673d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10/MSFT_IntuneDeviceConfigurationWindowsTeamPolicyWindows10.psm1 @@ -796,6 +796,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10.psm1 index ff7a7b9661..f50c18b678 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10/MSFT_IntuneDeviceConfigurationWiredNetworkPolicyWindows10.psm1 @@ -1108,6 +1108,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { @@ -1239,12 +1244,12 @@ function Update-DeviceConfigurationPolicyCertificateId ) $Uri = "https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations('$DeviceConfigurationPolicyId')/microsoft.graph.windowsWiredNetworkConfiguration/$CertificateName/`$ref" - + if ($CertificateName -eq 'rootCertificatesForServerValidation') { $method = 'POST' } - else + else { $method = 'PUT' } diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentLimitRestriction/MSFT_IntuneDeviceEnrollmentLimitRestriction.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentLimitRestriction/MSFT_IntuneDeviceEnrollmentLimitRestriction.psm1 index 7099aeef74..b32ff4c894 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentLimitRestriction/MSFT_IntuneDeviceEnrollmentLimitRestriction.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentLimitRestriction/MSFT_IntuneDeviceEnrollmentLimitRestriction.psm1 @@ -361,6 +361,11 @@ function Export-TargetResource } foreach ($config in $configs) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($configs.Count)] $($config.displayName)" -NoNewline $params = @{ DisplayName = $config.displayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentPlatformRestriction/MSFT_IntuneDeviceEnrollmentPlatformRestriction.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentPlatformRestriction/MSFT_IntuneDeviceEnrollmentPlatformRestriction.psm1 index 3176ce93b0..0197834fb8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentPlatformRestriction/MSFT_IntuneDeviceEnrollmentPlatformRestriction.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentPlatformRestriction/MSFT_IntuneDeviceEnrollmentPlatformRestriction.psm1 @@ -726,6 +726,11 @@ function Export-TargetResource } foreach ($config in $configs) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($configs.Count)] $($config.displayName)" -NoNewline $params = @{ Identity = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 index 6ef11e526d..ae9a1605f3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceEnrollmentStatusPageWindows10/MSFT_IntuneDeviceEnrollmentStatusPageWindows10.psm1 @@ -740,6 +740,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 index 9f57d74e78..84cf082fda 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDeviceRemediation/MSFT_IntuneDeviceRemediation.psm1 @@ -446,7 +446,7 @@ function Set-TargetResource } elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') { - Write-Verbose -Message "Removing the Intune Device Remediation with Id {$($currentInstance.Id)}" + Write-Verbose -Message "Removing the Intune Device Remediation with Id {$($currentInstance.Id)}" #region resource generator code Remove-MgBetaDeviceManagementDeviceHealthScript -DeviceHealthScriptId $currentInstance.Id #endregion @@ -700,6 +700,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 index 6233583a29..5ba4cdeb40 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneDiskEncryptionMacOS/MSFT_IntuneDiskEncryptionMacOS.psm1 @@ -170,7 +170,7 @@ function Get-TargetResource $results.Add('CertificateThumbprint', $CertificateThumbprint) $results.Add('ManagedIdentity', $ManagedIdentity.IsPresent) $results.Add('AccessTokens', $AccessTokens) - + $assignmentsValues = Get-MgBetaDeviceManagementIntentAssignment -DeviceManagementIntentId $Id $assignmentResult = @() foreach ($assignmentEntry in $AssignmentsValues) @@ -396,7 +396,7 @@ function Set-TargetResource } elseif ($Ensure -eq 'Absent' -and $currentInstance.Ensure -eq 'Present') { - Write-Verbose -Message "Removing the Intune Disk Encryption for macOS with Id {$($currentInstance.Id)}" + Write-Verbose -Message "Removing the Intune Disk Encryption for macOS with Id {$($currentInstance.Id)}" #region resource generator code Remove-MgBetaDeviceManagementIntent -DeviceManagementIntentId $currentInstance.Id #endregion @@ -677,6 +677,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10.psm1 index ddb3aea770..5ace75f6cb 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10/MSFT_IntuneEndpointDetectionAndResponsePolicyWindows10.psm1 @@ -572,6 +572,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Name)" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 index e938f172a0..2bd04c1738 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog/MSFT_IntuneExploitProtectionPolicyWindows10SettingCatalog.psm1 @@ -581,6 +581,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Name)" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntunePolicySets/MSFT_IntunePolicySets.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntunePolicySets/MSFT_IntunePolicySets.psm1 index 557accf808..c8af34c914 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntunePolicySets/MSFT_IntunePolicySets.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntunePolicySets/MSFT_IntunePolicySets.psm1 @@ -602,6 +602,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneRoleAssignment/MSFT_IntuneRoleAssignment.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneRoleAssignment/MSFT_IntuneRoleAssignment.psm1 index d2d276ab46..b793caca5f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneRoleAssignment/MSFT_IntuneRoleAssignment.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneRoleAssignment/MSFT_IntuneRoleAssignment.psm1 @@ -686,6 +686,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneRoleDefinition/MSFT_IntuneRoleDefinition.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneRoleDefinition/MSFT_IntuneRoleDefinition.psm1 index e22e5f11d6..1c1fa9b321 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneRoleDefinition/MSFT_IntuneRoleDefinition.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneRoleDefinition/MSFT_IntuneRoleDefinition.psm1 @@ -524,6 +524,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.psm1 index e1b7d65c72..ac4ed929ed 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10/MSFT_IntuneSettingCatalogASRRulesPolicyWindows10.psm1 @@ -921,6 +921,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Name)" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogCustomPolicyWindows10/MSFT_IntuneSettingCatalogCustomPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogCustomPolicyWindows10/MSFT_IntuneSettingCatalogCustomPolicyWindows10.psm1 index 24e690e736..f8ee3ba6aa 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogCustomPolicyWindows10/MSFT_IntuneSettingCatalogCustomPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneSettingCatalogCustomPolicyWindows10/MSFT_IntuneSettingCatalogCustomPolicyWindows10.psm1 @@ -599,6 +599,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.Name)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator.psm1 index 63673c9f2f..cf04d592ff 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator/MSFT_IntuneWifiConfigurationPolicyAndroidDeviceAdministrator.psm1 @@ -637,6 +637,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($config.DisplayName)" -NoNewline $params = @{ Id = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner.psm1 index 2ccc2c6f62..996a10e006 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseDeviceOwner.psm1 @@ -726,6 +726,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($config.DisplayName)" -NoNewline $params = @{ Id = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile.psm1 index fe9183d21a..7b1351f626 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile/MSFT_IntuneWifiConfigurationPolicyAndroidEnterpriseWorkProfile.psm1 @@ -634,6 +634,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($config.DisplayName)" -NoNewline $params = @{ Id = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidForWork/MSFT_IntuneWifiConfigurationPolicyAndroidForWork.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidForWork/MSFT_IntuneWifiConfigurationPolicyAndroidForWork.psm1 index 4a3eeb2618..567b55b0b6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidForWork/MSFT_IntuneWifiConfigurationPolicyAndroidForWork.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidForWork/MSFT_IntuneWifiConfigurationPolicyAndroidForWork.psm1 @@ -633,6 +633,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($config.DisplayName)" -NoNewline $params = @{ Id = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject.psm1 index 1c0da717d3..fd9b09c737 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject/MSFT_IntuneWifiConfigurationPolicyAndroidOpenSourceProject.psm1 @@ -659,6 +659,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($config.DisplayName)" -NoNewline $params = @{ Id = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyIOS/MSFT_IntuneWifiConfigurationPolicyIOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyIOS/MSFT_IntuneWifiConfigurationPolicyIOS.psm1 index 826198a0f1..b507c86122 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyIOS/MSFT_IntuneWifiConfigurationPolicyIOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyIOS/MSFT_IntuneWifiConfigurationPolicyIOS.psm1 @@ -714,6 +714,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($config.DisplayName)" -NoNewline $params = @{ Id = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyMacOS/MSFT_IntuneWifiConfigurationPolicyMacOS.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyMacOS/MSFT_IntuneWifiConfigurationPolicyMacOS.psm1 index b71edd1783..60dccbc035 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyMacOS/MSFT_IntuneWifiConfigurationPolicyMacOS.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyMacOS/MSFT_IntuneWifiConfigurationPolicyMacOS.psm1 @@ -700,6 +700,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($config.DisplayName)" -NoNewline $params = @{ Id = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyWindows10/MSFT_IntuneWifiConfigurationPolicyWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyWindows10/MSFT_IntuneWifiConfigurationPolicyWindows10.psm1 index b8d398c81e..7989624aea 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyWindows10/MSFT_IntuneWifiConfigurationPolicyWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWifiConfigurationPolicyWindows10/MSFT_IntuneWifiConfigurationPolicyWindows10.psm1 @@ -743,6 +743,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($getValue.Count)] $($config.DisplayName)" -NoNewline $params = @{ Id = $config.id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined.psm1 index 30fecacf02..16fd4b221d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADHybridJoined.psm1 @@ -678,6 +678,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined.psm1 index b3f0db8444..aa1d91f71c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined/MSFT_IntuneWindowsAutopilotDeploymentProfileAzureADJoined.psm1 @@ -698,6 +698,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 index ea832f5730..50547c35dc 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled/MSFT_IntuneWindowsInformationProtectionPolicyWindows10MdmEnrolled.psm1 @@ -975,6 +975,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.psm1 index 5e8f837fd0..378a80ff2d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessDriverUpdateProfileWindows10.psm1 @@ -33,7 +33,7 @@ function Get-TargetResource [Parameter()] [Microsoft.Management.Infrastructure.CimInstance[]] $Assignments, - #endregion + #endregion [Parameter()] [System.String] @@ -545,6 +545,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 index 8d17322aca..5ec1a4091f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessFeatureUpdateProfileWindows10.psm1 @@ -543,6 +543,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10.psm1 index 07509d3684..b588f2be8e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10/MSFT_IntuneWindowsUpdateForBusinessRingUpdateProfileWindows10.psm1 @@ -1131,6 +1131,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Id if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_O365AdminAuditLogConfig/MSFT_O365AdminAuditLogConfig.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_O365AdminAuditLogConfig/MSFT_O365AdminAuditLogConfig.psm1 index 445cf241ba..6b5c348513 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_O365AdminAuditLogConfig/MSFT_O365AdminAuditLogConfig.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_O365AdminAuditLogConfig/MSFT_O365AdminAuditLogConfig.psm1 @@ -368,6 +368,11 @@ function Export-TargetResource $value = 'Enabled' } + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $dscContent = '' $Params = @{ IsSingleInstance = 'Yes' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_O365Group/MSFT_O365Group.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_O365Group/MSFT_O365Group.psm1 index c47be3f966..c77ba7c781 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_O365Group/MSFT_O365Group.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_O365Group/MSFT_O365Group.psm1 @@ -593,6 +593,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($group in $groups) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($groups.Length)] $($group.DisplayName)" -NoNewline $Params = @{ Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_O365OrgCustomizationSetting/MSFT_O365OrgCustomizationSetting.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_O365OrgCustomizationSetting/MSFT_O365OrgCustomizationSetting.psm1 index f5ba543d17..3370394730 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_O365OrgCustomizationSetting/MSFT_O365OrgCustomizationSetting.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_O365OrgCustomizationSetting/MSFT_O365OrgCustomizationSetting.psm1 @@ -297,6 +297,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_O365OrgSettings/MSFT_O365OrgSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_O365OrgSettings/MSFT_O365OrgSettings.psm1 index 0cee92ef1d..365976f1b5 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_O365OrgSettings/MSFT_O365OrgSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_O365OrgSettings/MSFT_O365OrgSettings.psm1 @@ -1060,6 +1060,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_O365SearchAndIntelligenceConfigurations/MSFT_O365SearchAndIntelligenceConfigurations.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_O365SearchAndIntelligenceConfigurations/MSFT_O365SearchAndIntelligenceConfigurations.psm1 index 7be18108db..530689c86a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_O365SearchAndIntelligenceConfigurations/MSFT_O365SearchAndIntelligenceConfigurations.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_O365SearchAndIntelligenceConfigurations/MSFT_O365SearchAndIntelligenceConfigurations.psm1 @@ -317,6 +317,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_ODSettings/MSFT_ODSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_ODSettings/MSFT_ODSettings.psm1 index f28886481c..139de8c59b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_ODSettings/MSFT_ODSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_ODSettings/MSFT_ODSettings.psm1 @@ -649,6 +649,11 @@ function Export-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' ApplicationId = $ApplicationId diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_PPPowerAppsEnvironment/MSFT_PPPowerAppsEnvironment.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_PPPowerAppsEnvironment/MSFT_PPPowerAppsEnvironment.psm1 index ee92ba7ea0..aa41be362f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_PPPowerAppsEnvironment/MSFT_PPPowerAppsEnvironment.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_PPPowerAppsEnvironment/MSFT_PPPowerAppsEnvironment.psm1 @@ -329,6 +329,11 @@ function Export-TargetResource { if ($environment.EnvironmentType -ne 'Default') { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($environments.Count)] $($environment.DisplayName)" -NoNewline $environmentType = $environment.EnvironmentType if ($environmentType -eq 'Notspecified') diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantIsolationSettings/MSFT_PPTenantIsolationSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantIsolationSettings/MSFT_PPTenantIsolationSettings.psm1 index a6a82545b1..5926a34333 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantIsolationSettings/MSFT_PPTenantIsolationSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantIsolationSettings/MSFT_PPTenantIsolationSettings.psm1 @@ -653,6 +653,11 @@ function Export-TargetResource try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $dscContent = '' $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantSettings/MSFT_PPTenantSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantSettings/MSFT_PPTenantSettings.psm1 index cf5b52f761..5c789791f6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantSettings/MSFT_PPTenantSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_PPTenantSettings/MSFT_PPTenantSettings.psm1 @@ -434,6 +434,11 @@ function Export-TargetResource } $dscContent = '' + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_PlannerBucket/MSFT_PlannerBucket.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_PlannerBucket/MSFT_PlannerBucket.psm1 index 55324b87db..c6debb4856 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_PlannerBucket/MSFT_PlannerBucket.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_PlannerBucket/MSFT_PlannerBucket.psm1 @@ -350,6 +350,11 @@ function Export-TargetResource $k = 1 foreach ($bucket in $buckets) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$k/$($buckets.Length)] $($bucket.Name)" -NoNewline $params = @{ Name = $bucket.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_PlannerPlan/MSFT_PlannerPlan.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_PlannerPlan/MSFT_PlannerPlan.psm1 index 1e92902137..16830b0caa 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_PlannerPlan/MSFT_PlannerPlan.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_PlannerPlan/MSFT_PlannerPlan.psm1 @@ -386,6 +386,11 @@ function Export-TargetResource $j = 1 foreach ($plan in $plans) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $params = @{ Title = $plan.Title OwnerGroup = $group.Id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_PlannerTask/MSFT_PlannerTask.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_PlannerTask/MSFT_PlannerTask.psm1 index 7fbb09e0b0..4b54639eef 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_PlannerTask/MSFT_PlannerTask.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_PlannerTask/MSFT_PlannerTask.psm1 @@ -731,6 +731,11 @@ function Export-TargetResource $k = 1 foreach ($task in $tasks) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$k/$($tasks.Length)] $($task.Title)" -NoNewline $currentDSCBlock = '' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCAuditConfigurationPolicy/MSFT_SCAuditConfigurationPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCAuditConfigurationPolicy/MSFT_SCAuditConfigurationPolicy.psm1 index 3bbe70dde1..d8a9cd9b03 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCAuditConfigurationPolicy/MSFT_SCAuditConfigurationPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCAuditConfigurationPolicy/MSFT_SCAuditConfigurationPolicy.psm1 @@ -359,6 +359,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Length)] $($policy.Workload)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Workload $policy.Workload diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCAutoSensitivityLabelPolicy/MSFT_SCAutoSensitivityLabelPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCAutoSensitivityLabelPolicy/MSFT_SCAutoSensitivityLabelPolicy.psm1 index d0e9f6df7d..0742054bf0 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCAutoSensitivityLabelPolicy/MSFT_SCAutoSensitivityLabelPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCAutoSensitivityLabelPolicy/MSFT_SCAutoSensitivityLabelPolicy.psm1 @@ -834,6 +834,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $policy.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCAutoSensitivityLabelRule/MSFT_SCAutoSensitivityLabelRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCAutoSensitivityLabelRule/MSFT_SCAutoSensitivityLabelRule.psm1 index e098b6010d..4f871a10dc 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCAutoSensitivityLabelRule/MSFT_SCAutoSensitivityLabelRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCAutoSensitivityLabelRule/MSFT_SCAutoSensitivityLabelRule.psm1 @@ -1142,6 +1142,11 @@ function Export-TargetResource } foreach ($rule in $rules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($rules.Length)] $($rule.Name)" -NoNewline [Array]$workloads = $rule.Workload.Replace(' ', '').Split(',') diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCCaseHoldPolicy/MSFT_SCCaseHoldPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCCaseHoldPolicy/MSFT_SCCaseHoldPolicy.psm1 index 42c646d0c8..cc98385f55 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCCaseHoldPolicy/MSFT_SCCaseHoldPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCCaseHoldPolicy/MSFT_SCCaseHoldPolicy.psm1 @@ -510,6 +510,11 @@ function Export-TargetResource $j = 1 foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$j/$($policies.Count)] $($policy.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCCaseHoldRule/MSFT_SCCaseHoldRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCCaseHoldRule/MSFT_SCCaseHoldRule.psm1 index 76933e8f09..a5e9e1ed8e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCCaseHoldRule/MSFT_SCCaseHoldRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCCaseHoldRule/MSFT_SCCaseHoldRule.psm1 @@ -402,6 +402,11 @@ function Export-TargetResource } foreach ($Rule in $Rules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Rules.Count)] $($Rule.Name)" -NoNewline try { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceCase/MSFT_SCComplianceCase.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceCase/MSFT_SCComplianceCase.psm1 index f994da49b5..765c2e59f0 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceCase/MSFT_SCComplianceCase.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceCase/MSFT_SCComplianceCase.psm1 @@ -398,6 +398,11 @@ function Export-TargetResource } foreach ($Case in $Cases) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " eDiscovery: [$i/$($Cases.Count)] $($Case.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $Case.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceSearch/MSFT_SCComplianceSearch.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceSearch/MSFT_SCComplianceSearch.psm1 index 18e5eadc36..7cf411e732 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceSearch/MSFT_SCComplianceSearch.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceSearch/MSFT_SCComplianceSearch.psm1 @@ -536,6 +536,11 @@ function Export-TargetResource $partialContent = '' foreach ($search in $searches) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($searches.Name.Count)] $($search.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $search.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceSearchAction/MSFT_SCComplianceSearchAction.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceSearchAction/MSFT_SCComplianceSearchAction.psm1 index 0ad798b17b..761921f519 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceSearchAction/MSFT_SCComplianceSearchAction.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceSearchAction/MSFT_SCComplianceSearchAction.psm1 @@ -609,6 +609,11 @@ function Export-TargetResource $i = 1 foreach ($action in $actions) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($actions.Length)] $($action.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceTag/MSFT_SCComplianceTag.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceTag/MSFT_SCComplianceTag.psm1 index 305306883f..89ca1e87d3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceTag/MSFT_SCComplianceTag.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCComplianceTag/MSFT_SCComplianceTag.psm1 @@ -558,6 +558,11 @@ function Export-TargetResource $dscContent = '' foreach ($tag in $tags) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($totalTags)] $($tag.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $tag.Name $Results.FilePlanProperty = Get-SCFilePlanPropertyAsString $Results.FilePlanProperty diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPCompliancePolicy/MSFT_SCDLPCompliancePolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPCompliancePolicy/MSFT_SCDLPCompliancePolicy.psm1 index 0b9538e51e..f4f0c868b8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPCompliancePolicy/MSFT_SCDLPCompliancePolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPCompliancePolicy/MSFT_SCDLPCompliancePolicy.psm1 @@ -968,6 +968,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $policy.Name $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 index 68612be5af..58cd3a9831 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDLPComplianceRule/MSFT_SCDLPComplianceRule.psm1 @@ -1470,6 +1470,11 @@ function Export-TargetResource } foreach ($rule in $rules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($rules.Length)] $($rule.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDeviceConditionalAccessPolicy/MSFT_SCDeviceConditionalAccessPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDeviceConditionalAccessPolicy/MSFT_SCDeviceConditionalAccessPolicy.psm1 index 0fb94c806c..22a8b59815 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDeviceConditionalAccessPolicy/MSFT_SCDeviceConditionalAccessPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDeviceConditionalAccessPolicy/MSFT_SCDeviceConditionalAccessPolicy.psm1 @@ -387,6 +387,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Length)] $($policy.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $policy.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDeviceConfigurationPolicy/MSFT_SCDeviceConfigurationPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDeviceConfigurationPolicy/MSFT_SCDeviceConfigurationPolicy.psm1 index cf2ecfc407..716a316834 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCDeviceConfigurationPolicy/MSFT_SCDeviceConfigurationPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCDeviceConfigurationPolicy/MSFT_SCDeviceConfigurationPolicy.psm1 @@ -388,6 +388,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Length)] $($policy.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $policy.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyAuthority/MSFT_SCFilePlanPropertyAuthority.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyAuthority/MSFT_SCFilePlanPropertyAuthority.psm1 index 30ee99b616..7a9429b79e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyAuthority/MSFT_SCFilePlanPropertyAuthority.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyAuthority/MSFT_SCFilePlanPropertyAuthority.psm1 @@ -356,6 +356,11 @@ function Export-TargetResource } foreach ($Property in $Properties) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Properties.Length)] $($Property.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $Property.DisplayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyCategory/MSFT_SCFilePlanPropertyCategory.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyCategory/MSFT_SCFilePlanPropertyCategory.psm1 index 5e613dbe33..d70c4433f5 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyCategory/MSFT_SCFilePlanPropertyCategory.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyCategory/MSFT_SCFilePlanPropertyCategory.psm1 @@ -357,6 +357,11 @@ function Export-TargetResource } foreach ($Property in $Properties) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Properties.Length)] $($Property.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $Property.DisplayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyCitation/MSFT_SCFilePlanPropertyCitation.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyCitation/MSFT_SCFilePlanPropertyCitation.psm1 index 18c98f6693..5ca55e538b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyCitation/MSFT_SCFilePlanPropertyCitation.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyCitation/MSFT_SCFilePlanPropertyCitation.psm1 @@ -384,6 +384,11 @@ function Export-TargetResource } foreach ($Property in $Properties) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Properties.Length)] $($Property.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $Property.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyDepartment/MSFT_SCFilePlanPropertyDepartment.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyDepartment/MSFT_SCFilePlanPropertyDepartment.psm1 index 0ab98960c3..d1a851107c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyDepartment/MSFT_SCFilePlanPropertyDepartment.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyDepartment/MSFT_SCFilePlanPropertyDepartment.psm1 @@ -357,6 +357,11 @@ function Export-TargetResource } foreach ($Property in $Properties) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Properties.Length)] $($Property.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $Property.DisplayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyReferenceId/MSFT_SCFilePlanPropertyReferenceId.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyReferenceId/MSFT_SCFilePlanPropertyReferenceId.psm1 index 69ce25befd..c1461d3661 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyReferenceId/MSFT_SCFilePlanPropertyReferenceId.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertyReferenceId/MSFT_SCFilePlanPropertyReferenceId.psm1 @@ -357,6 +357,11 @@ function Export-TargetResource } foreach ($Property in $Properties) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Properties.Length)] $($Property.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $Property.DisplayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertySubCategory/MSFT_SCFilePlanPropertySubCategory.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertySubCategory/MSFT_SCFilePlanPropertySubCategory.psm1 index 716cb49d57..5302a4acc8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertySubCategory/MSFT_SCFilePlanPropertySubCategory.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCFilePlanPropertySubCategory/MSFT_SCFilePlanPropertySubCategory.psm1 @@ -383,6 +383,11 @@ function Export-TargetResource } foreach ($Property in $Properties) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $parent = Get-FilePlanPropertyCategory | Where-Object -FilterScript { $_.Guid -like "*$($property.ParentId)*" } Write-Host " |---[$i/$($Properties.Length)] $($Property.Name)" -NoNewline diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCLabelPolicy/MSFT_SCLabelPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCLabelPolicy/MSFT_SCLabelPolicy.psm1 index e83356729a..e2d2bfefe0 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCLabelPolicy/MSFT_SCLabelPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCLabelPolicy/MSFT_SCLabelPolicy.psm1 @@ -847,6 +847,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $policy.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCProtectionAlert/MSFT_SCProtectionAlert.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCProtectionAlert/MSFT_SCProtectionAlert.psm1 index 9eb104a4a2..81c0a104ea 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCProtectionAlert/MSFT_SCProtectionAlert.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCProtectionAlert/MSFT_SCProtectionAlert.psm1 @@ -667,6 +667,11 @@ function Export-TargetResource $dscContent = '' foreach ($alert in $Alerts) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($totalAlerts)] $($alert.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $Alert.Name $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCRetentionCompliancePolicy/MSFT_SCRetentionCompliancePolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCRetentionCompliancePolicy/MSFT_SCRetentionCompliancePolicy.psm1 index f0ffb4061e..432a91ccfb 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCRetentionCompliancePolicy/MSFT_SCRetentionCompliancePolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCRetentionCompliancePolicy/MSFT_SCRetentionCompliancePolicy.psm1 @@ -1085,6 +1085,11 @@ function Export-TargetResource $dscContent = '' foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Length)] $($policy.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $policy.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCRetentionComplianceRule/MSFT_SCRetentionComplianceRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCRetentionComplianceRule/MSFT_SCRetentionComplianceRule.psm1 index 9952853061..b38cc365f2 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCRetentionComplianceRule/MSFT_SCRetentionComplianceRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCRetentionComplianceRule/MSFT_SCRetentionComplianceRule.psm1 @@ -589,6 +589,11 @@ function Export-TargetResource foreach ($rule in $rules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($rules.Length)] $($rule.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCRetentionEventType/MSFT_SCRetentionEventType.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCRetentionEventType/MSFT_SCRetentionEventType.psm1 index 4cc0b7c53f..847519cbfa 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCRetentionEventType/MSFT_SCRetentionEventType.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCRetentionEventType/MSFT_SCRetentionEventType.psm1 @@ -373,6 +373,11 @@ function Export-TargetResource foreach ($eventType in $EventTypes) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($EventTypes.Length)] $($eventType.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $eventType.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCRoleGroup/MSFT_SCRoleGroup.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCRoleGroup/MSFT_SCRoleGroup.psm1 index a3c39864b1..5533d71d2f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCRoleGroup/MSFT_SCRoleGroup.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCRoleGroup/MSFT_SCRoleGroup.psm1 @@ -387,6 +387,11 @@ function Export-TargetResource $i = 1 foreach ($RoleGroup in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedInstances.Count)] $($RoleGroup.Name)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCRoleGroupMember/MSFT_SCRoleGroupMember.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCRoleGroupMember/MSFT_SCRoleGroupMember.psm1 index b66ec192fb..853a4786e5 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCRoleGroupMember/MSFT_SCRoleGroupMember.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCRoleGroupMember/MSFT_SCRoleGroupMember.psm1 @@ -383,6 +383,11 @@ function Export-TargetResource $i = 1 foreach ($RoleGroup in $Script:exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($Script:exportedInstances.Count)] $($RoleGroup.Name)" -NoNewline $roleGroupMember = Get-RoleGroupMember -Identity $RoleGroup.Name | Select-Object Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCSecurityFilter/MSFT_SCSecurityFilter.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCSecurityFilter/MSFT_SCSecurityFilter.psm1 index 6a2447f0fd..706ca7a061 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCSecurityFilter/MSFT_SCSecurityFilter.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCSecurityFilter/MSFT_SCSecurityFilter.psm1 @@ -539,6 +539,11 @@ function Export-TargetResource } foreach ($filter in $filters) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($filters.Count)] $($filter.FilterName)" -NoNewline # $GetParams = ([Hashtable]$PSBoundParameters).Clone() diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCSensitivityLabel/MSFT_SCSensitivityLabel.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCSensitivityLabel/MSFT_SCSensitivityLabel.psm1 index 345f154e52..b5a788ec74 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCSensitivityLabel/MSFT_SCSensitivityLabel.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCSensitivityLabel/MSFT_SCSensitivityLabel.psm1 @@ -1223,6 +1223,11 @@ function Export-TargetResource } foreach ($label in $labels) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($labels.Count)] $($label.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters -Name $label.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCSupervisoryReviewPolicy/MSFT_SCSupervisoryReviewPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCSupervisoryReviewPolicy/MSFT_SCSupervisoryReviewPolicy.psm1 index 43d369684d..33c183c554 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCSupervisoryReviewPolicy/MSFT_SCSupervisoryReviewPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCSupervisoryReviewPolicy/MSFT_SCSupervisoryReviewPolicy.psm1 @@ -414,6 +414,11 @@ function Export-TargetResource } foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Length)] $($policy.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters ` -Name $policy.Name ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SCSupervisoryReviewRule/MSFT_SCSupervisoryReviewRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SCSupervisoryReviewRule/MSFT_SCSupervisoryReviewRule.psm1 index b2b15fad84..d5c4a93186 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SCSupervisoryReviewRule/MSFT_SCSupervisoryReviewRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SCSupervisoryReviewRule/MSFT_SCSupervisoryReviewRule.psm1 @@ -387,6 +387,11 @@ function Export-TargetResource } foreach ($rule in $rules) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($rules.Length)] $($rule.Name)" -NoNewline $Results = Get-TargetResource @PSBoundParameters ` -Name $rule.Name ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOAccessControlSettings/MSFT_SPOAccessControlSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOAccessControlSettings/MSFT_SPOAccessControlSettings.psm1 index 5a04937b91..ea35a596ee 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOAccessControlSettings/MSFT_SPOAccessControlSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOAccessControlSettings/MSFT_SPOAccessControlSettings.psm1 @@ -481,6 +481,11 @@ function Export-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' ApplicationId = $ApplicationId diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 index a964fc495c..c11eef7d8d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOApp/MSFT_SPOApp.psm1 @@ -419,6 +419,11 @@ function Export-TargetResource } if ($null -ne $app) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ Identity = $identity Path = ("`$PSScriptRoot\" + $file.Name) diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOBrowserIdleSignout/MSFT_SPOBrowserIdleSignout.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOBrowserIdleSignout/MSFT_SPOBrowserIdleSignout.psm1 index b2403a4a3a..524530bcfb 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOBrowserIdleSignout/MSFT_SPOBrowserIdleSignout.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOBrowserIdleSignout/MSFT_SPOBrowserIdleSignout.psm1 @@ -364,6 +364,11 @@ function Export-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' Enabled = $false diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 index 1b1feee0aa..4e04ecc4ad 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHomeSite/MSFT_SPOHomeSite.psm1 @@ -366,6 +366,11 @@ function Export-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' ApplicationId = $ApplicationId diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 index f6ee6e089a..c9a532062f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOHubSite/MSFT_SPOHubSite.psm1 @@ -658,6 +658,11 @@ function Export-TargetResource $dscContent = '' foreach ($hub in $hubSites) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " [$i/$($hubSites.Length)] $($hub.SiteUrl)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOOrgAssetsLibrary/MSFT_SPOOrgAssetsLibrary.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOOrgAssetsLibrary/MSFT_SPOOrgAssetsLibrary.psm1 index d0fe9461a0..94ec165cc3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOOrgAssetsLibrary/MSFT_SPOOrgAssetsLibrary.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOOrgAssetsLibrary/MSFT_SPOOrgAssetsLibrary.psm1 @@ -483,6 +483,11 @@ function Export-TargetResource { foreach ($orgAssetLib in $orgAssets) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " [$i/$($orgAssets.Length)] $($orgAssetLib.libraryurl.DecodedUrl)" -NoNewline $Params = @{ Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOPropertyBag/MSFT_SPOPropertyBag.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOPropertyBag/MSFT_SPOPropertyBag.psm1 index 8f34692080..8b8351eee0 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOPropertyBag/MSFT_SPOPropertyBag.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOPropertyBag/MSFT_SPOPropertyBag.psm1 @@ -439,6 +439,11 @@ function Export-TargetResource $j = 1 foreach ($property in $properties) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |--- [$j/$($properties.Length)] $($property.Key)" -NoNewline $Params = @{ Url = $siteUrl diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchManagedProperty/MSFT_SPOSearchManagedProperty.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchManagedProperty/MSFT_SPOSearchManagedProperty.psm1 index b2de504e87..b0d6ba4470 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchManagedProperty/MSFT_SPOSearchManagedProperty.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchManagedProperty/MSFT_SPOSearchManagedProperty.psm1 @@ -942,6 +942,11 @@ function Export-TargetResource } foreach ($property in $properties) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($properties.Length)] $($property.Value.Name)" -NoNewline $Params = @{ Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchResultSource/MSFT_SPOSearchResultSource.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchResultSource/MSFT_SPOSearchResultSource.psm1 index ed86dc5028..d8c204e313 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchResultSource/MSFT_SPOSearchResultSource.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSearchResultSource/MSFT_SPOSearchResultSource.psm1 @@ -629,6 +629,11 @@ function Export-TargetResource } foreach ($source in $sources) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $mapping = $InfoMapping | Where-Object -FilterScript { $_.ProviderID -eq $source.ProviderId } Write-Host " |---[$i/$($sourcesLength)] $($source.Name)" -NoNewline diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 index 02b200bc3d..f8b5887c2d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSharingSettings/MSFT_SPOSharingSettings.psm1 @@ -846,6 +846,11 @@ function Export-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' ApplicationId = $ApplicationId diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSite/MSFT_SPOSite.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSite/MSFT_SPOSite.psm1 index a4275aaeb0..8d18964b3d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSite/MSFT_SPOSite.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSite/MSFT_SPOSite.psm1 @@ -939,6 +939,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($site in $sites) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " [$i/$($sites.Length)] $($site.Url)" -NoNewline $site = Get-PnPTenantSite -Identity $site.Url $siteTitle = 'Null' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteAuditSettings/MSFT_SPOSiteAuditSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteAuditSettings/MSFT_SPOSiteAuditSettings.psm1 index 0a331f4f69..910ca12ba6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteAuditSettings/MSFT_SPOSiteAuditSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteAuditSettings/MSFT_SPOSiteAuditSettings.psm1 @@ -352,6 +352,11 @@ function Export-TargetResource { try { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " [$i/$($sites.Length)] Audit Settings for {$($site.Url)}" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 index b3a5b989d7..373dfbe9f6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesign/MSFT_SPOSiteDesign.psm1 @@ -499,6 +499,10 @@ function Export-TargetResource foreach ($design in $designs) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } Write-Host " |---[$i/$($designs.Length)] $($design.Title)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesignRights/MSFT_SPOSiteDesignRights.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesignRights/MSFT_SPOSiteDesignRights.psm1 index 8ca9e99049..fe9b9e9d04 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesignRights/MSFT_SPOSiteDesignRights.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteDesignRights/MSFT_SPOSiteDesignRights.psm1 @@ -431,6 +431,11 @@ function Export-TargetResource } foreach ($siteDesign in $siteDesigns) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($siteDesigns.Count)] $($siteDesign.Title)" -NoNewline $Params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 index 99f462d824..af4f4942fd 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteGroup/MSFT_SPOSiteGroup.psm1 @@ -520,6 +520,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($site in $sites) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($sites.Length)] SPOSite groups for {$($site.Url)}" $siteGroups = $null try diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 index 63e1b90f2f..87686aff73 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOSiteScript/MSFT_SPOSiteScript.psm1 @@ -489,6 +489,11 @@ function Export-TargetResource } foreach ($script in $siteScripts) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " [$i/$($siteScripts.Length)] $($script.Title)" -NoNewline $params = @{ Identity = $script.Id diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOStorageEntity/MSFT_SPOStorageEntity.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOStorageEntity/MSFT_SPOStorageEntity.psm1 index deb27c2ff1..ef17a4c155 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOStorageEntity/MSFT_SPOStorageEntity.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOStorageEntity/MSFT_SPOStorageEntity.psm1 @@ -472,6 +472,11 @@ function Export-TargetResource foreach ($storageEntity in $storageEntities) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ Credential = $Credential Key = $storageEntity.Key diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnEnabled/MSFT_SPOTenantCdnEnabled.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnEnabled/MSFT_SPOTenantCdnEnabled.psm1 index b42dde81ec..0bb148e40f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnEnabled/MSFT_SPOTenantCdnEnabled.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnEnabled/MSFT_SPOTenantCdnEnabled.psm1 @@ -355,6 +355,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($cType in $cdnTypes) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/2] $cType" -NoNewline $Params = @{ Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnPolicy/MSFT_SPOTenantCdnPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnPolicy/MSFT_SPOTenantCdnPolicy.psm1 index 69f35dbbff..d79b564659 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnPolicy/MSFT_SPOTenantCdnPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantCdnPolicy/MSFT_SPOTenantCdnPolicy.psm1 @@ -363,6 +363,11 @@ function Export-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ CdnType = 'Public' ApplicationId = $ApplicationId @@ -399,6 +404,11 @@ function Export-TargetResource Write-Host $Global:M365DSCEmojiRedX } + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ CdnType = 'Private' ApplicationId = $ApplicationId diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantSettings/MSFT_SPOTenantSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantSettings/MSFT_SPOTenantSettings.psm1 index d14f915b7a..b4e4dda3a6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantSettings/MSFT_SPOTenantSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTenantSettings/MSFT_SPOTenantSettings.psm1 @@ -689,6 +689,11 @@ function Export-TargetResource Add-M365DSCTelemetryEvent -Data $data #endregion + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Params = @{ IsSingleInstance = 'Yes' ApplicationId = $ApplicationId diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTheme/MSFT_SPOTheme.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTheme/MSFT_SPOTheme.psm1 index e0166e00ee..146582b783 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTheme/MSFT_SPOTheme.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOTheme/MSFT_SPOTheme.psm1 @@ -408,6 +408,11 @@ function Export-TargetResource } foreach ($theme in $themes) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($themes.Length)] $($theme.Name)" -NoNewline $Params = @{ Name = $theme.Name diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOUserProfileProperty/MSFT_SPOUserProfileProperty.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOUserProfileProperty/MSFT_SPOUserProfileProperty.psm1 index 2cb165f758..4a4caa9fbd 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_SPOUserProfileProperty/MSFT_SPOUserProfileProperty.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_SPOUserProfileProperty/MSFT_SPOUserProfileProperty.psm1 @@ -346,6 +346,11 @@ function Export-TargetResource { if ($Results.Properties) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results.Properties = ConvertTo-M365DSCSPOUserProfilePropertyInstanceString -Properties $Results.Properties $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsAppPermissionPolicy/MSFT_TeamsAppPermissionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsAppPermissionPolicy/MSFT_TeamsAppPermissionPolicy.psm1 index f5ae368752..29a6d57b76 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsAppPermissionPolicy/MSFT_TeamsAppPermissionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsAppPermissionPolicy/MSFT_TeamsAppPermissionPolicy.psm1 @@ -459,6 +459,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsAppSetupPolicy/MSFT_TeamsAppSetupPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsAppSetupPolicy/MSFT_TeamsAppSetupPolicy.psm1 index 0e4acac7be..c758827f73 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsAppSetupPolicy/MSFT_TeamsAppSetupPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsAppSetupPolicy/MSFT_TeamsAppSetupPolicy.psm1 @@ -459,6 +459,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity Write-Host " |---[$i/$($getValue.Count)] $displayedKey" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsAudioConferencingPolicy/MSFT_TeamsAudioConferencingPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsAudioConferencingPolicy/MSFT_TeamsAudioConferencingPolicy.psm1 index 16e5d8b808..c4a8332252 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsAudioConferencingPolicy/MSFT_TeamsAudioConferencingPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsAudioConferencingPolicy/MSFT_TeamsAudioConferencingPolicy.psm1 @@ -383,6 +383,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallHoldPolicy/MSFT_TeamsCallHoldPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallHoldPolicy/MSFT_TeamsCallHoldPolicy.psm1 index 5701eaacf5..1f98469604 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallHoldPolicy/MSFT_TeamsCallHoldPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallHoldPolicy/MSFT_TeamsCallHoldPolicy.psm1 @@ -378,6 +378,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallParkPolicy/MSFT_TeamsCallParkPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallParkPolicy/MSFT_TeamsCallParkPolicy.psm1 index 39eea44316..cf6aa0b02a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallParkPolicy/MSFT_TeamsCallParkPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallParkPolicy/MSFT_TeamsCallParkPolicy.psm1 @@ -417,6 +417,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallQueue/MSFT_TeamsCallQueue.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallQueue/MSFT_TeamsCallQueue.psm1 index c6eaadba3d..bdeec1a64e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallQueue/MSFT_TeamsCallQueue.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallQueue/MSFT_TeamsCallQueue.psm1 @@ -948,6 +948,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($instance in $exportedInstances) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($exportedInstances.Count)] $($instance.Name)" -NoNewline $params = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallingPolicy/MSFT_TeamsCallingPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallingPolicy/MSFT_TeamsCallingPolicy.psm1 index fd160acbc2..3dad5be03f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallingPolicy/MSFT_TeamsCallingPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCallingPolicy/MSFT_TeamsCallingPolicy.psm1 @@ -584,6 +584,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Length)] $($policy.Identity)" -NoNewline $params = @{ Identity = $policy.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsChannel/MSFT_TeamsChannel.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsChannel/MSFT_TeamsChannel.psm1 index 88b2f21bcb..940dec7561 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsChannel/MSFT_TeamsChannel.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsChannel/MSFT_TeamsChannel.psm1 @@ -428,6 +428,11 @@ function Export-TargetResource Write-Host " |---[$j/$($Teams.Length)] Team {$($team.DisplayName)}" foreach ($channel in $channels) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($channels.Length)] $($channel.DisplayName)" -NoNewline $params = @{ TeamName = $team.DisplayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsChannelTab/MSFT_TeamsChannelTab.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsChannelTab/MSFT_TeamsChannelTab.psm1 index a7271be307..6af727886b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsChannelTab/MSFT_TeamsChannelTab.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsChannelTab/MSFT_TeamsChannelTab.psm1 @@ -593,6 +593,11 @@ function Export-TargetResource $k = 1 foreach ($tab in $tabs) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$k/$($tabs.Length)] $($tab.DisplayName)" -NoNewline $params = @{ TeamName = $team.DisplayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsChannelsPolicy/MSFT_TeamsChannelsPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsChannelsPolicy/MSFT_TeamsChannelsPolicy.psm1 index 288cfdcf4a..c99cb8340f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsChannelsPolicy/MSFT_TeamsChannelsPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsChannelsPolicy/MSFT_TeamsChannelsPolicy.psm1 @@ -392,6 +392,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Identity)" -NoNewline $params = @{ Identity = $policy.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsClientConfiguration/MSFT_TeamsClientConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsClientConfiguration/MSFT_TeamsClientConfiguration.psm1 index ccd351808e..b75b494596 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsClientConfiguration/MSFT_TeamsClientConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsClientConfiguration/MSFT_TeamsClientConfiguration.psm1 @@ -483,6 +483,11 @@ function Export-TargetResource if ($Results -is [System.Collections.Hashtable] -and $Results.Count -gt 1) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsComplianceRecordingPolicy/MSFT_TeamsComplianceRecordingPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsComplianceRecordingPolicy/MSFT_TeamsComplianceRecordingPolicy.psm1 index f46d9f3d04..84a43c4cef 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsComplianceRecordingPolicy/MSFT_TeamsComplianceRecordingPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsComplianceRecordingPolicy/MSFT_TeamsComplianceRecordingPolicy.psm1 @@ -426,6 +426,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCortanaPolicy/MSFT_TeamsCortanaPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCortanaPolicy/MSFT_TeamsCortanaPolicy.psm1 index b8a78ad139..3c7844360d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCortanaPolicy/MSFT_TeamsCortanaPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsCortanaPolicy/MSFT_TeamsCortanaPolicy.psm1 @@ -381,6 +381,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsDialInConferencingTenantSettings/MSFT_TeamsDialInConferencingTenantSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsDialInConferencingTenantSettings/MSFT_TeamsDialInConferencingTenantSettings.psm1 index 35398f4d2d..8aded19030 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsDialInConferencingTenantSettings/MSFT_TeamsDialInConferencingTenantSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsDialInConferencingTenantSettings/MSFT_TeamsDialInConferencingTenantSettings.psm1 @@ -405,6 +405,11 @@ function Export-TargetResource if ($Results -is [System.Collections.Hashtable] -and $Results.Count -gt 1) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEmergencyCallRoutingPolicy/MSFT_TeamsEmergencyCallRoutingPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEmergencyCallRoutingPolicy/MSFT_TeamsEmergencyCallRoutingPolicy.psm1 index 666b7bc797..cb6af2fc54 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEmergencyCallRoutingPolicy/MSFT_TeamsEmergencyCallRoutingPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEmergencyCallRoutingPolicy/MSFT_TeamsEmergencyCallRoutingPolicy.psm1 @@ -396,6 +396,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Identity)" -NoNewline $params = @{ Identity = $policy.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEmergencyCallingPolicy/MSFT_TeamsEmergencyCallingPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEmergencyCallingPolicy/MSFT_TeamsEmergencyCallingPolicy.psm1 index cb2766001c..bbe6d1c31c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEmergencyCallingPolicy/MSFT_TeamsEmergencyCallingPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEmergencyCallingPolicy/MSFT_TeamsEmergencyCallingPolicy.psm1 @@ -417,6 +417,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Identity)" -NoNewline $params = @{ Identity = $policy.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEnhancedEncryptionPolicy/MSFT_TeamsEnhancedEncryptionPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEnhancedEncryptionPolicy/MSFT_TeamsEnhancedEncryptionPolicy.psm1 index 1eac16d1a0..eae491c639 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEnhancedEncryptionPolicy/MSFT_TeamsEnhancedEncryptionPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEnhancedEncryptionPolicy/MSFT_TeamsEnhancedEncryptionPolicy.psm1 @@ -391,6 +391,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEventsPolicy/MSFT_TeamsEventsPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEventsPolicy/MSFT_TeamsEventsPolicy.psm1 index cfca4e145b..0584446165 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEventsPolicy/MSFT_TeamsEventsPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsEventsPolicy/MSFT_TeamsEventsPolicy.psm1 @@ -474,6 +474,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Identity)" -NoNewline $params = @{ Identity = $policy.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFederationConfiguration/MSFT_TeamsFederationConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFederationConfiguration/MSFT_TeamsFederationConfiguration.psm1 index 040ec3c972..7ac2fd857c 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFederationConfiguration/MSFT_TeamsFederationConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFederationConfiguration/MSFT_TeamsFederationConfiguration.psm1 @@ -422,6 +422,11 @@ function Export-TargetResource if ($Results -is [System.Collections.Hashtable] -and $Results.Count -gt 1) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFeedbackPolicy/MSFT_TeamsFeedbackPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFeedbackPolicy/MSFT_TeamsFeedbackPolicy.psm1 index 9305f4fbe4..084d66012e 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFeedbackPolicy/MSFT_TeamsFeedbackPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFeedbackPolicy/MSFT_TeamsFeedbackPolicy.psm1 @@ -433,6 +433,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFilesPolicy/MSFT_TeamsFilesPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFilesPolicy/MSFT_TeamsFilesPolicy.psm1 index ebccfed07d..ebc6773349 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFilesPolicy/MSFT_TeamsFilesPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsFilesPolicy/MSFT_TeamsFilesPolicy.psm1 @@ -384,6 +384,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGroupPolicyAssignment/MSFT_TeamsGroupPolicyAssignment.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGroupPolicyAssignment/MSFT_TeamsGroupPolicyAssignment.psm1 index daad71b876..4aa4d6a7c2 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGroupPolicyAssignment/MSFT_TeamsGroupPolicyAssignment.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGroupPolicyAssignment/MSFT_TeamsGroupPolicyAssignment.psm1 @@ -416,6 +416,11 @@ function Export-TargetResource continue } + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$j/$($instances.Length)] GroupPolicyAssignment {$($Group.DisplayName)-$($item.PolicyType)}" -NoNewline $results = @{ GroupDisplayName = $Group.DisplayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGuestCallingConfiguration/MSFT_TeamsGuestCallingConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGuestCallingConfiguration/MSFT_TeamsGuestCallingConfiguration.psm1 index 8e00300c38..bb0da3b858 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGuestCallingConfiguration/MSFT_TeamsGuestCallingConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGuestCallingConfiguration/MSFT_TeamsGuestCallingConfiguration.psm1 @@ -290,6 +290,11 @@ function Export-TargetResource if ($Results -is [System.Collections.Hashtable] -and $Results.Count -gt 1) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGuestMeetingConfiguration/MSFT_TeamsGuestMeetingConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGuestMeetingConfiguration/MSFT_TeamsGuestMeetingConfiguration.psm1 index 10fa88ca27..77b0865be6 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGuestMeetingConfiguration/MSFT_TeamsGuestMeetingConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGuestMeetingConfiguration/MSFT_TeamsGuestMeetingConfiguration.psm1 @@ -343,6 +343,11 @@ function Export-TargetResource if ($Results -is [System.Collections.Hashtable] -and $Results.Count -gt 1) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGuestMessagingConfiguration/MSFT_TeamsGuestMessagingConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGuestMessagingConfiguration/MSFT_TeamsGuestMessagingConfiguration.psm1 index 0dd7aea8f9..bb6a3ae46b 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGuestMessagingConfiguration/MSFT_TeamsGuestMessagingConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsGuestMessagingConfiguration/MSFT_TeamsGuestMessagingConfiguration.psm1 @@ -408,6 +408,11 @@ function Export-TargetResource if ($Results -is [System.Collections.Hashtable] -and $Results.Count -gt 1) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsIPPhonePolicy/MSFT_TeamsIPPhonePolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsIPPhonePolicy/MSFT_TeamsIPPhonePolicy.psm1 index d89ff52297..b955c6360f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsIPPhonePolicy/MSFT_TeamsIPPhonePolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsIPPhonePolicy/MSFT_TeamsIPPhonePolicy.psm1 @@ -455,6 +455,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingBroadcastConfiguration/MSFT_TeamsMeetingBroadcastConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingBroadcastConfiguration/MSFT_TeamsMeetingBroadcastConfiguration.psm1 index b5b96b03cd..c8eaec0c08 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingBroadcastConfiguration/MSFT_TeamsMeetingBroadcastConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingBroadcastConfiguration/MSFT_TeamsMeetingBroadcastConfiguration.psm1 @@ -358,6 +358,11 @@ function Export-TargetResource if ($Results -is [System.Collections.Hashtable] -and $Results.Count -gt 1) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $results.SdnApiToken = '$ConfigurationData.Settings.SdnApiToken' diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingBroadcastPolicy/MSFT_TeamsMeetingBroadcastPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingBroadcastPolicy/MSFT_TeamsMeetingBroadcastPolicy.psm1 index 3840c9f8f2..e6fbe6d536 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingBroadcastPolicy/MSFT_TeamsMeetingBroadcastPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingBroadcastPolicy/MSFT_TeamsMeetingBroadcastPolicy.psm1 @@ -366,6 +366,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $params = @{ Identity = $policy.Identity Credential = $Credential diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingConfiguration/MSFT_TeamsMeetingConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingConfiguration/MSFT_TeamsMeetingConfiguration.psm1 index b20877ed84..d49a104cd4 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingConfiguration/MSFT_TeamsMeetingConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingConfiguration/MSFT_TeamsMeetingConfiguration.psm1 @@ -450,6 +450,11 @@ function Export-TargetResource if ($Results -is [System.Collections.Hashtable] -and $Results.Count -gt 1) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingPolicy/MSFT_TeamsMeetingPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingPolicy/MSFT_TeamsMeetingPolicy.psm1 index 935863f5c8..de8dc6c018 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingPolicy/MSFT_TeamsMeetingPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMeetingPolicy/MSFT_TeamsMeetingPolicy.psm1 @@ -1207,6 +1207,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Identity)" -NoNewline $params = @{ Identity = $policy.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMessagingPolicy/MSFT_TeamsMessagingPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMessagingPolicy/MSFT_TeamsMessagingPolicy.psm1 index 00ac3676ec..92e0513144 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMessagingPolicy/MSFT_TeamsMessagingPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMessagingPolicy/MSFT_TeamsMessagingPolicy.psm1 @@ -641,6 +641,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Identity)" -NoNewline if ($policy.Identity.ToString().contains(':')) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMobilityPolicy/MSFT_TeamsMobilityPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMobilityPolicy/MSFT_TeamsMobilityPolicy.psm1 index 37dc444e0b..10ce160ccd 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMobilityPolicy/MSFT_TeamsMobilityPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsMobilityPolicy/MSFT_TeamsMobilityPolicy.psm1 @@ -413,6 +413,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsNetworkRoamingPolicy/MSFT_TeamsNetworkRoamingPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsNetworkRoamingPolicy/MSFT_TeamsNetworkRoamingPolicy.psm1 index 0db6a487bf..69d1c977c3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsNetworkRoamingPolicy/MSFT_TeamsNetworkRoamingPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsNetworkRoamingPolicy/MSFT_TeamsNetworkRoamingPolicy.psm1 @@ -391,6 +391,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOnlineVoiceUser/MSFT_TeamsOnlineVoiceUser.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOnlineVoiceUser/MSFT_TeamsOnlineVoiceUser.psm1 index 051b6a47eb..f62e7c92bd 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOnlineVoiceUser/MSFT_TeamsOnlineVoiceUser.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOnlineVoiceUser/MSFT_TeamsOnlineVoiceUser.psm1 @@ -328,6 +328,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($user in $users) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($users.Count)] $($user.UserPrincipalName)" -NoNewline $params = @{ Identity = $user.UserPrincipalName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOnlineVoicemailPolicy/MSFT_TeamsOnlineVoicemailPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOnlineVoicemailPolicy/MSFT_TeamsOnlineVoicemailPolicy.psm1 index 0da3afe11b..09ffdae6d3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOnlineVoicemailPolicy/MSFT_TeamsOnlineVoicemailPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOnlineVoicemailPolicy/MSFT_TeamsOnlineVoicemailPolicy.psm1 @@ -409,6 +409,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Identity)" -NoNewline $params = @{ Identity = $policy.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOnlineVoicemailUserSettings/MSFT_TeamsOnlineVoicemailUserSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOnlineVoicemailUserSettings/MSFT_TeamsOnlineVoicemailUserSettings.psm1 index 89854d0472..e0523347e2 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOnlineVoicemailUserSettings/MSFT_TeamsOnlineVoicemailUserSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOnlineVoicemailUserSettings/MSFT_TeamsOnlineVoicemailUserSettings.psm1 @@ -446,6 +446,11 @@ function Export-TargetResource if ($Results.Ensure -eq 'Present') { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOrgWideAppSettings/MSFT_TeamsOrgWideAppSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOrgWideAppSettings/MSFT_TeamsOrgWideAppSettings.psm1 index 44532f77f1..31b7f3cb62 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOrgWideAppSettings/MSFT_TeamsOrgWideAppSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsOrgWideAppSettings/MSFT_TeamsOrgWideAppSettings.psm1 @@ -213,6 +213,11 @@ function Export-TargetResource if ($Results.Ensure -eq 'Present') { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsPstnUsage/MSFT_TeamsPstnUsage.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsPstnUsage/MSFT_TeamsPstnUsage.psm1 index 05ec94f5dc..7dade8dee8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsPstnUsage/MSFT_TeamsPstnUsage.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsPstnUsage/MSFT_TeamsPstnUsage.psm1 @@ -310,6 +310,11 @@ function Export-TargetResource } foreach ($usage in $usages) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($usages.Count)] $usage" -NoNewline $params = @{ Usage = $usage diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsShiftsPolicy/MSFT_TeamsShiftsPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsShiftsPolicy/MSFT_TeamsShiftsPolicy.psm1 index bea164f345..702bd1c042 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsShiftsPolicy/MSFT_TeamsShiftsPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsShiftsPolicy/MSFT_TeamsShiftsPolicy.psm1 @@ -460,6 +460,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTeam/MSFT_TeamsTeam.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTeam/MSFT_TeamsTeam.psm1 index 8e247512a3..65198e99db 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTeam/MSFT_TeamsTeam.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTeam/MSFT_TeamsTeam.psm1 @@ -734,6 +734,11 @@ function Export-TargetResource # Skip Teams without DisplayName (orphaned/deleted Teams) because the Get method cannot be called without a display name if ($null -ne $team.DisplayName -and $team.DisplayName -ne '') { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($teams.Length)] $($team.DisplayName)" -NoNewline $params = @{ DisplayName = $team.DisplayName diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTemplatesPolicy/MSFT_TeamsTemplatesPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTemplatesPolicy/MSFT_TeamsTemplatesPolicy.psm1 index c2f9dfdd6b..c74fe4e136 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTemplatesPolicy/MSFT_TeamsTemplatesPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTemplatesPolicy/MSFT_TeamsTemplatesPolicy.psm1 @@ -350,6 +350,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Length)] $($policy.Identity)" -NoNewline $params = @{ Identity = $policy.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantDialPlan/MSFT_TeamsTenantDialPlan.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantDialPlan/MSFT_TeamsTenantDialPlan.psm1 index 5e32b7663e..401cf324d0 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantDialPlan/MSFT_TeamsTenantDialPlan.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantDialPlan/MSFT_TeamsTenantDialPlan.psm1 @@ -508,6 +508,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($plan in $tenantDialPlans) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($tenantDialPlans.Count)] $($plan.Identity)" -NoNewline $params = @{ Identity = $plan.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantNetworkRegion/MSFT_TeamsTenantNetworkRegion.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantNetworkRegion/MSFT_TeamsTenantNetworkRegion.psm1 index bc8c958494..fdf2643a4d 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantNetworkRegion/MSFT_TeamsTenantNetworkRegion.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantNetworkRegion/MSFT_TeamsTenantNetworkRegion.psm1 @@ -378,6 +378,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantNetworkSite/MSFT_TeamsTenantNetworkSite.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantNetworkSite/MSFT_TeamsTenantNetworkSite.psm1 index ff51861c4f..054c9efcea 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantNetworkSite/MSFT_TeamsTenantNetworkSite.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantNetworkSite/MSFT_TeamsTenantNetworkSite.psm1 @@ -456,6 +456,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantNetworkSubnet/MSFT_TeamsTenantNetworkSubnet.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantNetworkSubnet/MSFT_TeamsTenantNetworkSubnet.psm1 index 0f7b1313e1..ce4ed9082f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantNetworkSubnet/MSFT_TeamsTenantNetworkSubnet.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantNetworkSubnet/MSFT_TeamsTenantNetworkSubnet.psm1 @@ -391,6 +391,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantTrustedIPAddress/MSFT_TeamsTenantTrustedIPAddress.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantTrustedIPAddress/MSFT_TeamsTenantTrustedIPAddress.psm1 index d660794666..48b2579c75 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantTrustedIPAddress/MSFT_TeamsTenantTrustedIPAddress.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTenantTrustedIPAddress/MSFT_TeamsTenantTrustedIPAddress.psm1 @@ -380,6 +380,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTranslationRule/MSFT_TeamsTranslationRule.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTranslationRule/MSFT_TeamsTranslationRule.psm1 index 89cb3cffab..cefbc1e0bc 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTranslationRule/MSFT_TeamsTranslationRule.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsTranslationRule/MSFT_TeamsTranslationRule.psm1 @@ -391,6 +391,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUnassignedNumberTreatment/MSFT_TeamsUnassignedNumberTreatment.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUnassignedNumberTreatment/MSFT_TeamsUnassignedNumberTreatment.psm1 index af7f591eb6..cc6c98d603 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUnassignedNumberTreatment/MSFT_TeamsUnassignedNumberTreatment.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUnassignedNumberTreatment/MSFT_TeamsUnassignedNumberTreatment.psm1 @@ -420,6 +420,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUpdateManagementPolicy/MSFT_TeamsUpdateManagementPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUpdateManagementPolicy/MSFT_TeamsUpdateManagementPolicy.psm1 index 5acac79304..f971163f12 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUpdateManagementPolicy/MSFT_TeamsUpdateManagementPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUpdateManagementPolicy/MSFT_TeamsUpdateManagementPolicy.psm1 @@ -426,6 +426,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Identity.Replace('Tag:', ''))" -NoNewline $params = @{ Identity = $policy.Identity.Replace('Tag:', '') diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUpgradeConfiguration/MSFT_TeamsUpgradeConfiguration.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUpgradeConfiguration/MSFT_TeamsUpgradeConfiguration.psm1 index c6e6a2d124..d1b3b66a5a 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUpgradeConfiguration/MSFT_TeamsUpgradeConfiguration.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUpgradeConfiguration/MSFT_TeamsUpgradeConfiguration.psm1 @@ -304,6 +304,11 @@ function Export-TargetResource if ($Results -is [System.Collections.Hashtable] -and $Results.Count -gt 1) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUpgradePolicy/MSFT_TeamsUpgradePolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUpgradePolicy/MSFT_TeamsUpgradePolicy.psm1 index 29a65decb2..1bc09914bf 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUpgradePolicy/MSFT_TeamsUpgradePolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUpgradePolicy/MSFT_TeamsUpgradePolicy.psm1 @@ -327,6 +327,11 @@ function Export-TargetResource if ($Results -is [System.Collections.Hashtable] -and $Results.Count -gt 1) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUser/MSFT_TeamsUser.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUser/MSFT_TeamsUser.psm1 index 6423b9987d..e309152a79 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUser/MSFT_TeamsUser.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUser/MSFT_TeamsUser.psm1 @@ -376,6 +376,11 @@ function Export-TargetResource Write-Host " > [$j/$totalCount] Team {$($team.DisplayName)}" foreach ($user in $users) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " - [$k/$($users.Length)] $($user.User)" -NoNewline $getParams = @{ diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUserCallingSettings/MSFT_TeamsUserCallingSettings.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUserCallingSettings/MSFT_TeamsUserCallingSettings.psm1 index d081430a9e..f746d4300f 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUserCallingSettings/MSFT_TeamsUserCallingSettings.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUserCallingSettings/MSFT_TeamsUserCallingSettings.psm1 @@ -469,6 +469,11 @@ function Export-TargetResource if ($Results.Ensure -eq 'Present') { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUserPolicyAssignment/MSFT_TeamsUserPolicyAssignment.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUserPolicyAssignment/MSFT_TeamsUserPolicyAssignment.psm1 index 9fd93319d0..ce927c2248 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUserPolicyAssignment/MSFT_TeamsUserPolicyAssignment.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsUserPolicyAssignment/MSFT_TeamsUserPolicyAssignment.psm1 @@ -679,6 +679,11 @@ function Export-TargetResource if ($null -ne $results) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` -Results $Results $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsVdiPolicy/MSFT_TeamsVdiPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsVdiPolicy/MSFT_TeamsVdiPolicy.psm1 index ad340f70b2..d242f43ab3 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsVdiPolicy/MSFT_TeamsVdiPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsVdiPolicy/MSFT_TeamsVdiPolicy.psm1 @@ -378,6 +378,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsVoiceRoute/MSFT_TeamsVoiceRoute.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsVoiceRoute/MSFT_TeamsVoiceRoute.psm1 index a6316fe227..bf8bbb5139 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsVoiceRoute/MSFT_TeamsVoiceRoute.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsVoiceRoute/MSFT_TeamsVoiceRoute.psm1 @@ -419,6 +419,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($route in $routes) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($routes.Count)] $($route.Identity)" -NoNewline $params = @{ Identity = $route.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsVoiceRoutingPolicy/MSFT_TeamsVoiceRoutingPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsVoiceRoutingPolicy/MSFT_TeamsVoiceRoutingPolicy.psm1 index 031fa9d841..6ffccdd547 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsVoiceRoutingPolicy/MSFT_TeamsVoiceRoutingPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsVoiceRoutingPolicy/MSFT_TeamsVoiceRoutingPolicy.psm1 @@ -346,6 +346,11 @@ function Export-TargetResource Write-Host "`r`n" -NoNewline foreach ($policy in $policies) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + Write-Host " |---[$i/$($policies.Count)] $($policy.Identity)" -NoNewline $params = @{ Identity = $policy.Identity diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsWorkloadPolicy/MSFT_TeamsWorkloadPolicy.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsWorkloadPolicy/MSFT_TeamsWorkloadPolicy.psm1 index dc4b11c4e0..9f5e0491e8 100644 --- a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsWorkloadPolicy/MSFT_TeamsWorkloadPolicy.psm1 +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsWorkloadPolicy/MSFT_TeamsWorkloadPolicy.psm1 @@ -443,6 +443,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config.Identity if (-not [String]::IsNullOrEmpty($config.displayName)) { diff --git a/Modules/Microsoft365DSC/Modules/M365DSCReverse.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCReverse.psm1 index 0473217652..c074c3d4b8 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCReverse.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCReverse.psm1 @@ -109,6 +109,11 @@ function Start-M365DSCConfigurationExtract try { $Global:PartialExportFileName = "$(New-Guid).partial.ps1" + + # Telemetry parameters initialization + $Global:M365DSCExportResourceTypes = @() + $Global:M365DSCExportResourceInstancesCount = 0 + $M365DSCExportStartTime = [System.DateTime]::Now $InformationPreference = 'Continue' $VerbosePreference = 'SilentlyContinue' @@ -673,7 +678,7 @@ function Start-M365DSCConfigurationExtract Write-Host " `r`n$($Global:M365DSCEmojiYellowCircle) You specified a filter for resource {$resourceName} but it doesn't support filters. Filter will be ignored and all instances of the resource will be captured." } } - + $Global:M365DSCExportResourceTypes += $resourceName $exportString.Append((Export-TargetResource @parameters)) | Out-Null $i++ } @@ -740,6 +745,8 @@ function Start-M365DSCConfigurationExtract -End ($M365DSCExportEndTime.ToString()) Write-Host "$($Global:M365DSCEmojiHourglass) Export took {" -NoNewline Write-Host "$($timeTaken.TotalSeconds) seconds" -NoNewline -ForegroundColor Cyan + Write-Host '} for {' -NoNewline + Write-Host "$($Global:M365DSCExportResourceInstancesCount) instances" -NoNewline -ForegroundColor Magenta Write-Host '}' #endregion @@ -863,6 +870,15 @@ function Start-M365DSCConfigurationExtract $DSCContent = $DSCContent.Replace("`r`n;`r`n", ";`r`n") $DSCContent.ToString() | Out-File $outputDSCFile + try + { + $Global:M365DSCExportContentSize = ((Get-Item -Path $outputDSCFile).Length/1KB).ToString().Split('.')[0] + " kb" + } + catch + { + Write-Verbose -Message $_ + } + if (!$AzureAutomation -and !$ManagedIdentity.IsPresent) { try diff --git a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 index 9019091d5a..536421afa1 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCTelemetryEngine.psm1 @@ -207,6 +207,23 @@ function Add-M365DSCTelemetryEvent $Data.Resource = $Data.Resource.Replace('MSFT_', '') } + if ($Type -eq "ExportCompleted") + { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Data.Add("ExportedResourceInstancesCount", $Global:M365DSCExportResourceInstancesCount) + } + if ($null -ne $Global:M365DSCExportResourceTypes) + { + $Data.Add("ExportedResourceTypes", $Global:M365DSCExportResourceTypes) + $Data.Add("ExportedResourceTypesCount", $Global:M365DSCExportResourceTypes.Length) + } + if($null -ne $Global:M365DSCExportContentSize) + { + $Data.Add("ExportedContentSize", $Global:M365DSCExportContentSize) + } + } + [array]$version = (Get-Module 'Microsoft365DSC').Version | Sort-Object -Descending $Data.Add('M365DSCVersion', $version[0].ToString()) From ada5f3978384f590d1abed5f5dce2791199c7eaf Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 19 Jun 2024 07:49:53 -0400 Subject: [PATCH 10/19] Update Module.Workloads.Template.psm1 --- ResourceGenerator/Module.Workloads.Template.psm1 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ResourceGenerator/Module.Workloads.Template.psm1 b/ResourceGenerator/Module.Workloads.Template.psm1 index 876ff1e882..5e4e99acc1 100644 --- a/ResourceGenerator/Module.Workloads.Template.psm1 +++ b/ResourceGenerator/Module.Workloads.Template.psm1 @@ -240,6 +240,11 @@ function Export-TargetResource } foreach ($config in $getValue) { + if ($null -ne $Global:M365DSCExportResourceInstancesCount) + { + $Global:M365DSCExportResourceInstancesCount++ + } + $displayedKey = $config. if (-not [String]::IsNullOrEmpty($config.displayName)) { From eeff18374c5a8159b64ceeb9082d8a2fe2d7f882 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 19 Jun 2024 07:51:00 -0400 Subject: [PATCH 11/19] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ab2caaedf..1af9961013 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ * SCDLPComplianceRule * Fix #4259 and #3845 +* MISC + * Imrpoved telemetry around Export sizes. + # 1.24.612.1 * IntuneAppConfigurationDevicePolicy From fdb0cdd51732a7e624752248e627ca3fecc628d0 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 19 Jun 2024 07:52:21 -0400 Subject: [PATCH 12/19] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1af9961013..addbcf2ec8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ * SCDLPComplianceRule * Fix #4259 and #3845 * MISC - * Imrpoved telemetry around Export sizes. + * Improved telemetry around Export sizes. # 1.24.612.1 From efcf3fea4b01db02bb9b9c319a08673435c84dd1 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 19 Jun 2024 08:39:54 -0400 Subject: [PATCH 13/19] Update M365DSCUtil.psm1 --- Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 index c87282c1d5..4877184ed1 100644 --- a/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 +++ b/Modules/Microsoft365DSC/Modules/M365DSCUtil.psm1 @@ -1343,9 +1343,11 @@ function Export-M365DSCConfiguration } $Tenant = Get-M365DSCTenantNameFromParameterSet -ParameterSet $PSBoundParameters + $ConnectionMode = Get-M365DSCAuthenticationMode $PSBoundParameters $data.Add('Tenant', $Tenant) $currentExportID = (New-Guid).ToString() $data.Add('M365DSCExportId', $currentExportID) + $data.Add('ConnectionMode', $ConnectionMode) Add-M365DSCTelemetryEvent -Type 'ExportInitiated' -Data $data if ($null -ne $Workloads) @@ -1416,8 +1418,16 @@ function Export-M365DSCConfiguration $Global:M365DSCExportInProgress = $false $data = [System.Collections.Generic.Dictionary[[String], [String]]]::new() - $data.Add('Tenant', $Tenant) + if ([System.String]::IsNullOrEmpty($data.Tenant) -and -not [System.String]::IsNullOrEmpty($TenantId)) + { + $data.Add('Tenant', $TenantId) + } + else + { + $data.Add('Tenant', $Tenant) + } $data.Add('M365DSCExportId', $currentExportID) + $data.Add('ConnectionMode', $ConnectionMode) $timeTaken = [System.DateTime]::Now.Subtract($currentStartDateTime) $data.Add('TotalSeconds',$timeTaken.TotalSeconds) Add-M365DSCTelemetryEvent -Type 'ExportCompleted' -Data $data From a9a826b9fa5af87b458eb76ecdd3b732e6492de0 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Wed, 19 Jun 2024 17:45:47 -0400 Subject: [PATCH 14/19] TeamsM365App - Initial Release --- CHANGELOG.md | 5 + .../MSFT_TeamsM365App/MSFT_TeamsM365App.psm1 | 495 ++++++++ .../MSFT_TeamsM365App.schema.mof | 15 + .../DSCResources/MSFT_TeamsM365App/readme.md | 6 + .../MSFT_TeamsM365App/settings.json | 32 + .../Dependencies/Manifest.psd1 | 2 +- .../Resources/TeamsM365App/2-Update.ps1 | 27 + .../Microsoft365DSC.TeamsM365App.Tests.ps1 | 175 +++ Tests/Unit/Stubs/Microsoft365.psm1 | 1028 +++++++++++------ 9 files changed, 1462 insertions(+), 323 deletions(-) create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/MSFT_TeamsM365App.psm1 create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/MSFT_TeamsM365App.schema.mof create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/readme.md create mode 100644 Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/settings.json create mode 100644 Modules/Microsoft365DSC/Examples/Resources/TeamsM365App/2-Update.ps1 create mode 100644 Tests/Unit/Microsoft365DSC/Microsoft365DSC.TeamsM365App.Tests.ps1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ab2caaedf..c48de93c35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ * SCDLPComplianceRule * Fix #4259 and #3845 +* TeamsM365App +* Initial release. +* DEPENDENCIES + * Updated MicrosoftTeams to version 6.4.0. + # 1.24.612.1 * IntuneAppConfigurationDevicePolicy diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/MSFT_TeamsM365App.psm1 b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/MSFT_TeamsM365App.psm1 new file mode 100644 index 0000000000..232f63ddc3 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/MSFT_TeamsM365App.psm1 @@ -0,0 +1,495 @@ +function Get-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Collections.Hashtable])] + param + ( + [Parameter(Mandatory = $true)] + [System.String] + $Id, + + [Parameter()] + [System.Boolean] + $IsBlocked, + + [Parameter()] + [System.String] + [ValidateSet('Everyone', 'UsersAndGroups', 'NoOne')] + $AssignmentType, + + [Parameter()] + [System.String[]] + $Users, + + [Parameter()] + [System.String[]] + $Groups, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + New-M365DSCConnection -Workload 'MicrosoftTeams' ` + -InboundParameters $PSBoundParameters | Out-Null + + New-M365DSCConnection -Workload 'MicrosoftGraph' ` + -InboundParameters $PSBoundParameters | Out-Null + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $nullResult = $PSBoundParameters + $nullResult.Ensure = 'Absent' + try + { + if ($null -ne $Script:exportedInstances -and $Script:ExportMode) + { + $instance = $Script:exportedInstances | Where-Object -FilterScript {$_.Id -eq $Id} + } + else + { + $instance = Get-M365TeamsApp -Id $Id -ErrorAction Stop + } + if ($null -eq $instance) + { + return $nullResult + } + + $usersValue = @() + if ($null -ne $instance.AvailableTo.Users) + { + foreach ($userEntry in $instance.AvailableTo.Users) + { + $userInfo = Get-MgUser -UserId $userEntry.Id + $usersValue += $userInfo.UserPrincipalName + } + } + + $groupsValue = @() + if ($null -ne $instance.AvailableTo.Groups) + { + foreach ($groupEntry in $instance.AvailableTo.Groups) + { + $groupInfo = Get-MgGroup -GroupId $groupEntry.Id + $groupsValue += $groupInfo.DisplayName + } + } + + Write-Verbose -Message "Found an instance with Id {$Id}" + $results = @{ + Id = $instance.Id + IsBlocked = [Boolean]$instance.IsBlocked + AssignmentType = $instance.AvailableTo.AssignmentType + Users = $usersValue + Groups = $groupsValue + Ensure = 'Present' + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + ManagedIdentity = $ManagedIdentity.IsPresent + AccessTokens = $AccessTokens + } + return [System.Collections.Hashtable] $results + } + catch + { + New-M365DSCLogEntry -Message 'Error retrieving data:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return $nullResult + } +} + +function Set-TargetResource +{ + [CmdletBinding()] + param + ( + [Parameter(Mandatory = $true)] + [System.String] + $Id, + + [Parameter()] + [System.Boolean] + $IsBlocked, + + [Parameter()] + [System.String] + [ValidateSet('Everyone', 'UsersAndGroups', 'NoOne')] + $AssignmentType, + + [Parameter()] + [System.String[]] + $Users, + + [Parameter()] + [System.String[]] + $Groups, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + $currentInstance = Get-TargetResource @PSBoundParameters + + $PSBoundParameters.Remove('Ensure') | Out-Null + $PSBoundParameters.Remove('Credential') | Out-Null + $PSBoundParameters.Remove('ApplicationId') | Out-Null + $PSBoundParameters.Remove('ApplicationSecret') | Out-Null + $PSBoundParameters.Remove('TenantId') | Out-Null + $PSBoundParameters.Remove('CertificateThumbprint') | Out-Null + $PSBoundParameters.Remove('ManagedIdentity') | Out-Null + $PSBoundParameters.Remove('AccessTokens') | Out-Null + + Write-Verbose -Message "Updating {$Id}" + + if ($AssignmentType -eq 'UsersAndGroups') + { + #region Users + $usersDelta = Compare-Object -ReferenceObject $currentInstance.Users -DifferenceObject $Users + $usersToAdd = @() + $usersToRemove = @() + foreach ($delta in $usersDelta) + { + if ($delta.SideIndicator -eq '<=') + { + $userInfo = Get-MgUser -UserId $delta.InputObject -ErrorAction Stop + $usersToRemove += $userInfo.Id + } + elseif ($delta.SideIndicator -eq '=>') + { + $userInfo = Get-MgUser -UserId $delta.InputObject -ErrorAction Stop + $usersToAdd += $userInfo.Id + } + } + + if ($usersToRemove.Length -gt 0) + { + Write-Verbose -Message "Removing Users Assignments for {$($usersToAdd)}" + Update-M365TeamsApp -Id $Id ` + -IsBlocked $IsBlocked ` + -AppAssignmentType $AssignmentType ` + -OperationType 'Remove' ` + -Users $usersToRemove + } + + if ($usersToAdd.Length -gt 0) + { + Write-Verbose -Message "Removing Users Assignments for {$($usersToAdd)}" + Update-M365TeamsApp -Id $Id ` + -IsBlocked $IsBlocked ` + -AppAssignmentType $AssignmentType ` + -OperationType 'Add' ` + -Users $usersToAdd + } + #endregion + + #region Groups + $groupsDelta = Compare-Object -ReferenceObject $currentInstance.Groups -DifferenceObject $Groups + $groupsToAdd = @() + $groupsToRemove = @() + foreach ($delta in $groupsDelta) + { + if ($delta.SideIndicator -eq '<=') + { + $groupInfo = Get-MgGroup -Filter "displayName eq '$($delta.InputObject)'" -ErrorAction Stop + $groupsToRemove += $groupInfo.Id + } + elseif ($delta.SideIndicator -eq '=>') + { + $groupInfo = Get-MgGroup -Filter "displayName eq '$($delta.InputObject)'" -ErrorAction Stop + $groupsToAdd += $groupInfo.Id + } + } + + if ($groupsToRemove.Length -gt 0) + { + Write-Verbose -Message "Removing Group Assignments for {$($groupsToRemove)}" + Update-M365TeamsApp -Id $Id ` + -IsBlocked $IsBlocked ` + -AppAssignmentType $AssignmentType ` + -OperationType 'Remove' ` + -Groups $groupsToRemove + } + + if ($groupsToAdd.Length -gt 0) + { + Write-Verbose -Message "Adding Group Assignments for {$($groupsToAdd)}" + Update-M365TeamsApp -Id $Id ` + -IsBlocked $IsBlocked ` + -AppAssignmentType $AssignmentType ` + -OperationType 'Add' ` + -Groups $groupsToAdd + } + #endregion + } + else + { + Write-Verbose -Message "Updating core settings for app {$Id}" + Update-M365TeamsApp -Id $Id ` + -IsBlocked $IsBlocked ` + -AppAssignmentType $AssignmentType + } +} + +function Test-TargetResource +{ + [CmdletBinding()] + [OutputType([System.Boolean])] + param + ( + [Parameter(Mandatory = $true)] + [System.String] + $Id, + + [Parameter()] + [System.Boolean] + $IsBlocked, + + [Parameter()] + [System.String] + [ValidateSet('Everyone', 'UsersAndGroups', 'NoOne')] + $AssignmentType, + + [Parameter()] + [System.String[]] + $Users, + + [Parameter()] + [System.String[]] + $Groups, + + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + Write-Verbose -Message "Testing configuration of {$Id}" + + $CurrentValues = Get-TargetResource @PSBoundParameters + $ValuesToCheck = ([Hashtable]$PSBoundParameters).Clone() + $ValuesToCheck.Remove('Id') | Out-Null + + Write-Verbose -Message "Current Values: $(Convert-M365DscHashtableToString -Hashtable $CurrentValues)" + Write-Verbose -Message "Target Values: $(Convert-M365DscHashtableToString -Hashtable $ValuesToCheck)" + + $testResult = Test-M365DSCParameterState -CurrentValues $CurrentValues ` + -Source $($MyInvocation.MyCommand.Source) ` + -DesiredValues $PSBoundParameters ` + -ValuesToCheck $ValuesToCheck.Keys + + Write-Verbose -Message "Test-TargetResource returned $testResult" + + return $testResult +} + +function Export-TargetResource +{ + [CmdletBinding()] + [OutputType([System.String])] + param + ( + [Parameter()] + [System.Management.Automation.PSCredential] + $Credential, + + [Parameter()] + [System.String] + $ApplicationId, + + [Parameter()] + [System.String] + $TenantId, + + [Parameter()] + [System.Management.Automation.PSCredential] + $ApplicationSecret, + + [Parameter()] + [System.String] + $CertificateThumbprint, + + [Parameter()] + [Switch] + $ManagedIdentity, + + [Parameter()] + [System.String[]] + $AccessTokens + ) + + $ConnectionMode = New-M365DSCConnection -Workload 'MicrosoftTeams' ` + -InboundParameters $PSBoundParameters + + #Ensure the proper dependencies are installed in the current environment. + Confirm-M365DSCDependencies + + #region Telemetry + $ResourceName = $MyInvocation.MyCommand.ModuleName.Replace('MSFT_', '') + $CommandName = $MyInvocation.MyCommand + $data = Format-M365DSCTelemetryParameters -ResourceName $ResourceName ` + -CommandName $CommandName ` + -Parameters $PSBoundParameters + Add-M365DSCTelemetryEvent -Data $data + #endregion + + try + { + $Script:ExportMode = $true + [array] $Script:exportedInstances = Get-AllM365TeamsApps -ErrorAction Stop + + $i = 1 + $dscContent = '' + if ($Script:exportedInstances.Length -eq 0) + { + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + else + { + Write-Host "`r`n" -NoNewline + } + foreach ($config in $Script:exportedInstances) + { + $displayedKey = $config.Id + Write-Host " |---[$i/$($Script:exportedInstances.Count)] $displayedKey" -NoNewline + $params = @{ + Id = $config.Id + Credential = $Credential + ApplicationId = $ApplicationId + TenantId = $TenantId + CertificateThumbprint = $CertificateThumbprint + ManagedIdentity = $ManagedIdentity.IsPresent + AccessTokens = $AccessTokens + } + + $Results = Get-TargetResource @Params + $Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode ` + -Results $Results + + $currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName ` + -ConnectionMode $ConnectionMode ` + -ModulePath $PSScriptRoot ` + -Results $Results ` + -Credential $Credential + $dscContent += $currentDSCBlock + Save-M365DSCPartialExport -Content $currentDSCBlock ` + -FileName $Global:PartialExportFileName + $i++ + Write-Host $Global:M365DSCEmojiGreenCheckMark + } + return $dscContent + } + catch + { + Write-Host $Global:M365DSCEmojiRedX + + New-M365DSCLogEntry -Message 'Error during Export:' ` + -Exception $_ ` + -Source $($MyInvocation.MyCommand.Source) ` + -TenantId $TenantId ` + -Credential $Credential + + return '' + } +} + +Export-ModuleMember -Function *-TargetResource diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/MSFT_TeamsM365App.schema.mof b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/MSFT_TeamsM365App.schema.mof new file mode 100644 index 0000000000..73793e2b4d --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/MSFT_TeamsM365App.schema.mof @@ -0,0 +1,15 @@ +[ClassVersion("1.0.0.0"), FriendlyName("TeamsM365App")] +class MSFT_TeamsM365App : OMI_BaseResource +{ + [Key, Description("Application ID of Microsoft Teams app.")] String Id; + [Write, Description("The state of the app in the tenant.")] Boolean IsBlocked; + [Write, Description("App availability type."), ValueMap{"Everyone","UsersAndGroups","NoOne"}, Values{"Everyone","UsersAndGroups","NoOne"}] String AssignmentType; + [Write, Description("List of all the users for whom the app is enabled or disabled.")] String Users[]; + [Write, Description("List of all the groups for whom the app is enabled or disabled.")] String Groups[]; + [Write, Description("Credentials of the workload's Admin"), EmbeddedInstance("MSFT_Credential")] string Credential; + [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId; + [Write, Description("Id of the Azure Active Directory tenant used for authentication.")] String TenantId; + [Write, Description("Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.")] String CertificateThumbprint; + [Write, Description("Managed ID being used for authentication.")] Boolean ManagedIdentity; + [Write, Description("Access token used for authentication.")] String AccessTokens[]; +}; diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/readme.md b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/readme.md new file mode 100644 index 0000000000..b63f3f8e75 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/readme.md @@ -0,0 +1,6 @@ + +# TeamsM365App + +## Description + +This resource manages Teams app. This includes app state, app availability, user who updated app availability, and the associated timestamp. diff --git a/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/settings.json b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/settings.json new file mode 100644 index 0000000000..64ae23fe18 --- /dev/null +++ b/Modules/Microsoft365DSC/DSCResources/MSFT_TeamsM365App/settings.json @@ -0,0 +1,32 @@ +{ + "resourceName": "TeamsM365App", + "description": "This resource manages Teams app. This includes app state, app availability, user who updated app availability, and the associated timestamp.", + "roles": { + "read": [ + "Global Reader" + ], + "update": [ + "Teams Administrator" + ] + }, + "permissions": { + "graph": { + "delegated": { + "read": [], + "update": [] + }, + "application": { + "read": [ + { + "name": "Organization.Read.All" + } + ], + "update": [ + { + "name": "Organization.Read.All" + } + ] + } + } + } +} diff --git a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 index 72e0d0d0be..ee2f616534 100644 --- a/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 +++ b/Modules/Microsoft365DSC/Dependencies/Manifest.psd1 @@ -86,7 +86,7 @@ }, @{ ModuleName = 'MicrosoftTeams' - RequiredVersion = '6.2.0' + RequiredVersion = '6.4.0' }, @{ ModuleName = "MSCloudLoginAssistant" diff --git a/Modules/Microsoft365DSC/Examples/Resources/TeamsM365App/2-Update.ps1 b/Modules/Microsoft365DSC/Examples/Resources/TeamsM365App/2-Update.ps1 new file mode 100644 index 0000000000..698de5b10b --- /dev/null +++ b/Modules/Microsoft365DSC/Examples/Resources/TeamsM365App/2-Update.ps1 @@ -0,0 +1,27 @@ +<# +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. +#> + +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + TeamsM365App "TeamsM365App-Update" + { + AssignmentType = "UsersAndGroups"; + Credential = $Credscredential; + Groups = @("Finance Team"); + Id = "95de633a-083e-42f5-b444-a4295d8e9314"; + IsBlocked = $False; + Users = @(); + } + } +} diff --git a/Tests/Unit/Microsoft365DSC/Microsoft365DSC.TeamsM365App.Tests.ps1 b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.TeamsM365App.Tests.ps1 new file mode 100644 index 0000000000..12d595244b --- /dev/null +++ b/Tests/Unit/Microsoft365DSC/Microsoft365DSC.TeamsM365App.Tests.ps1 @@ -0,0 +1,175 @@ +[CmdletBinding()] +param( +) +$M365DSCTestFolder = Join-Path -Path $PSScriptRoot ` + -ChildPath '..\..\Unit' ` + -Resolve +$CmdletModule = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Microsoft365.psm1' ` + -Resolve) +$GenericStubPath = (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\Stubs\Generic.psm1' ` + -Resolve) +Import-Module -Name (Join-Path -Path $M365DSCTestFolder ` + -ChildPath '\UnitTestHelper.psm1' ` + -Resolve) + +$Global:DscHelper = New-M365DscUnitTestHelper -StubModule $CmdletModule ` + -DscResource 'TeamsM365App' -GenericStubModule $GenericStubPath + +Describe -Name $Global:DscHelper.DescribeHeader -Fixture { + InModuleScope -ModuleName $Global:DscHelper.ModuleName -ScriptBlock { + Invoke-Command -ScriptBlock $Global:DscHelper.InitializeScript -NoNewScope + + BeforeAll { + $secpasswd = ConvertTo-SecureString ((New-Guid).ToString()) -AsPlainText -Force + $Credential = New-Object System.Management.Automation.PSCredential ('tenantadmin@mydomain.com', $secpasswd) + + $Global:PartialExportFileName = 'c:\TestPath' + + Mock -CommandName Save-M365DSCPartialExport -MockWith { + } + + Mock -CommandName New-M365DSCConnection -MockWith { + return 'Credentials' + } + + Mock -CommandName Update-M365TeamsApp -MockWith { + } + + # Mock Write-Host to hide output during the tests + Mock -CommandName Write-Host -MockWith { + } + $Script:exportedInstances =$null + $Script:ExportMode = $false + } + + # Test contexts + Context -Name "The instance is already in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + AssignmentType = "UsersAndGroups"; + Groups = @("Finance Team"); + Id = "95de633a-083e-42f5-b444-a4295d8e9314"; + IsBlocked = $False; + Users = @(); + Credential = $Credential + } + + Mock -CommandName Get-MgGroup -MockWith { + return @{ + DisplayName = "Finance Team" + Id = "12345-12345-12345-12345-12345" + } + } + + Mock -CommandName Get-M365TeamsApp -MockWith { + return @{ + IsBlocked = $false + AvailableTo = @{ + AssignmentType = "UsersAndGroups" + Groups = @("12345-12345-12345-12345-12345") + } + Id = "95de633a-083e-42f5-b444-a4295d8e9314" + } + } + } + + It 'Should return true from the Test method' { + [boolean] $result = Test-TargetResource @testParams + $result | Should -Be $true + } + } + + Context -Name "The instance is NOT in the desired state" -Fixture { + BeforeAll { + $testParams = @{ + AssignmentType = "UsersAndGroups"; + Groups = @(); + Id = "95de633a-083e-42f5-b444-a4295d8e9314"; + IsBlocked = $False; + Users = @("john.smith@contoso.com"); + Credential = $Credential + } + + Mock -CommandName Get-MgUser -MockWith { + return @{ + UserPrincipalName = "john.smith@contoso.com" + Id = "12345-12345-12345-12345-12345" + } + } + Mock -CommandName Get-MgGroup -MockWith { + return @{ + DisplayName = "Finance Team" + Id = "12345-12345-12345-12345-12345" + } + } + + Mock -CommandName Get-M365TeamsApp -MockWith { + return @{ + IsBlocked = $false + AvailableTo = @{ + AssignmentType = "UsersAndGroups" + Groups = @("12345-12345-12345-12345-12345") + } + Id = "95de633a-083e-42f5-b444-a4295d8e9314" + } + } + } + + It 'Should return false from the Test method' { + [boolean] $result = Test-TargetResource @testParams + $result | Should -Be $false + } + + It 'Update the instance in the Set method' { + Set-TargetResource @testParams + Should -Invoke -CommandName Update-M365TeamsApp -Exactly 2 + } + } + + Context -Name 'ReverseDSC Tests' -Fixture { + BeforeAll { + $Global:CurrentModeIsExport = $true + $Global:PartialExportFileName = "$(New-Guid).partial.ps1" + $testParams = @{ + Credential = $Credential + } + + Mock -CommandName Get-AllM365TeamsApps -MockWith { + return @{ + IsBlocked = $false + AvailableTo = @{ + AssignmentType = "UsersAndGroups" + Groups = @("12345-12345-12345-12345-12345") + } + Id = "95de633a-083e-42f5-b444-a4295d8e9314" + } + } + Mock -CommandName Get-M365TeamsApp -MockWith { + return @{ + IsBlocked = $false + AvailableTo = @{ + AssignmentType = "UsersAndGroups" + Groups = @("12345-12345-12345-12345-12345") + } + Id = "95de633a-083e-42f5-b444-a4295d8e9314" + } + } + Mock -CommandName Get-MgGroup -MockWith { + return @{ + DisplayName = "Finance Team" + Id = "12345-12345-12345-12345-12345" + } + } + } + + It 'Should Reverse Engineer resource from the Export method' { + $result = Export-TargetResource @testParams + $result | Should -Not -BeNullOrEmpty + } + } + } +} + +Invoke-Command -ScriptBlock $Global:DscHelper.CleanupScript -NoNewScope diff --git a/Tests/Unit/Stubs/Microsoft365.psm1 b/Tests/Unit/Stubs/Microsoft365.psm1 index ffd351c456..8fd08666bf 100644 --- a/Tests/Unit/Stubs/Microsoft365.psm1 +++ b/Tests/Unit/Stubs/Microsoft365.psm1 @@ -71718,6 +71718,13 @@ function Add-TeamUser $Role ) } +function Get-AllM365TeamsApps +{ + [CmdletBinding()] + param( + + ) +} function Get-CsOnlineVoicemailPolicy { [CmdletBinding()] @@ -71796,7 +71803,7 @@ function Get-CsTeamsChannelsPolicy $Identity ) } -function Get-CsTeamsComplianceRecordingPolicy +function Get-CsTeamsComplianceRecordingApplication { [CmdletBinding()] param( @@ -71809,7 +71816,7 @@ function Get-CsTeamsComplianceRecordingPolicy $Identity ) } -function Get-CsTeamsComplianceRecordingApplication +function Get-CsTeamsComplianceRecordingPolicy { [CmdletBinding()] param( @@ -71861,6 +71868,19 @@ function Get-CsTeamsFeedbackPolicy $Identity ) } +function Get-CsTeamsFilesPolicy +{ + [CmdletBinding()] + param( + [Parameter()] + [System.String] + $Filter, + + [Parameter()] + [System.String] + $Identity + ) +} function Get-CsTeamsMeetingConfiguration { [CmdletBinding()] @@ -71952,6 +71972,19 @@ function Get-CsTeamsUpgradeConfiguration $Identity ) } +function Get-CsTeamsVdiPolicy +{ + [CmdletBinding()] + param( + [Parameter()] + [System.String] + $Filter, + + [Parameter()] + [System.String] + $Identity + ) +} function Get-CsTenantNetworkSite { [CmdletBinding()] @@ -71969,6 +72002,15 @@ function Get-CsTenantNetworkSite $IncludePhoneNumbers ) } +function Get-M365TeamsApp +{ + [CmdletBinding()] + param( + [Parameter()] + [System.String] + $Id + ) +} function Get-Team { [CmdletBinding()] @@ -72295,6 +72337,10 @@ function New-CsTeamsAppSetupPolicy [PSObject] $AppPresetList, + [Parameter()] + [PSObject] + $AdditionalCustomizationApps, + [Parameter()] [System.Boolean] $AllowUserPinning, @@ -72665,6 +72711,10 @@ function New-CsTeamsEventsPolicy [System.String] $AllowWebinars, + [Parameter()] + [System.Boolean] + $UseMicrosoftECDN, + [Parameter()] [System.String] $AllowTownhalls, @@ -72715,6 +72765,35 @@ function New-CsTeamsFeedbackPolicy $Force ) } +function New-CsTeamsFilesPolicy +{ + [CmdletBinding()] + param( + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Force, + + [Parameter()] + [System.String] + $DefaultFileUploadAppId, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm, + + [Parameter()] + [System.String] + $NativeFileEntryPoints, + + [Parameter()] + [System.String] + $Identity, + + [Parameter()] + [System.String] + $SPChannelFilesTab + ) +} function New-CsTeamsHiddenTemplate { [CmdletBinding()] @@ -72728,9 +72807,17 @@ function New-CsTeamsMeetingPolicy { [CmdletBinding()] param( + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm, + [Parameter()] [System.String] - $TeamsCameraFarEndPTZMode, + $VoiceIsolation, + + [Parameter()] + [System.String] + $Copilot, [Parameter()] [System.String] @@ -72772,6 +72859,10 @@ function New-CsTeamsMeetingPolicy [System.String] $ExplicitRecordingConsent, + [Parameter()] + [System.String] + $ContentSharingInExternalMeetings, + [Parameter()] [System.Nullable`1[System.Int64]] $WatermarkForCameraVideoOpacity, @@ -72780,6 +72871,10 @@ function New-CsTeamsMeetingPolicy [System.Boolean] $AllowTranscription, + [Parameter()] + [System.Boolean] + $AllowMeetNow, + [Parameter()] [System.Boolean] $AllowWatermarkCustomizationForCameraVideo, @@ -72806,7 +72901,7 @@ function New-CsTeamsMeetingPolicy [Parameter()] [System.String] - $AllowUserToJoinExternalMeeting, + $SmsNotifications, [Parameter()] [System.Boolean] @@ -72836,6 +72931,10 @@ function New-CsTeamsMeetingPolicy [System.String] $RecordingStorageMode, + [Parameter()] + [System.String] + $ParticipantNameChange, + [Parameter()] [System.String] $ScreenSharingMode, @@ -72880,10 +72979,6 @@ function New-CsTeamsMeetingPolicy [System.Boolean] $AllowOrganizersToOverrideLobbySettings, - [Parameter()] - [System.String] - $CopilotWithoutTranscript, - [Parameter()] [System.Boolean] $AllowWatermarkCustomizationForScreenSharing, @@ -72896,6 +72991,10 @@ function New-CsTeamsMeetingPolicy [System.String] $Description, + [Parameter()] + [System.Boolean] + $DetectSensitiveContentDuringScreenSharing, + [Parameter()] [System.Boolean] $AllowNDIStreaming, @@ -72921,8 +73020,8 @@ function New-CsTeamsMeetingPolicy $AllowImmersiveView, [Parameter()] - [System.Boolean] - $AllowMeetNow, + [System.String] + $AutomaticallyStartCopilot, [Parameter()] [System.Boolean] @@ -72956,6 +73055,14 @@ function New-CsTeamsMeetingPolicy [System.String] $SpeakerAttributionMode, + [Parameter()] + [System.String] + $WatermarkForAnonymousUsers, + + [Parameter()] + [System.String] + $AllowedUsersForMeetingContext, + [Parameter()] [System.String] $Identity, @@ -72969,8 +73076,8 @@ function New-CsTeamsMeetingPolicy $AllowOutlookAddIn, [Parameter()] - [System.Management.Automation.SwitchParameter] - $Confirm, + [System.String] + $CaptchaVerificationForAnonymousUsers, [Parameter()] [System.String] @@ -72996,6 +73103,10 @@ function New-CsTeamsMeetingPolicy [System.Nullable`1[System.UInt32]] $MediaBitRateKb, + [Parameter()] + [System.String] + $TeamsCameraFarEndPTZMode, + [Parameter()] [System.String] $EnrollUserOverride, @@ -73012,6 +73123,10 @@ function New-CsTeamsMeetingPolicy [System.Boolean] $AllowChannelMeetingScheduling, + [Parameter()] + [System.String] + $ExternalMeetingJoin, + [Parameter()] [System.Boolean] $AllowMeetingReactions, @@ -73062,7 +73177,11 @@ function New-CsTeamsMeetingPolicy [Parameter()] [System.String] - $IPVideoMode + $IPVideoMode, + + [Parameter()] + [System.String] + $AutoRecording ) } function New-CsTeamsMessagingPolicy @@ -73089,6 +73208,10 @@ function New-CsTeamsMessagingPolicy [System.Boolean] $AllowGiphy, + [Parameter()] + [System.Boolean] + $DeleteCustomEmojis, + [Parameter()] [System.Boolean] $AllowUserDeleteMessage, @@ -73097,6 +73220,10 @@ function New-CsTeamsMessagingPolicy [System.String] $ChannelsInChatListEnabledType, + [Parameter()] + [System.String] + $Description, + [Parameter()] [System.Management.Automation.SwitchParameter] $Force, @@ -73105,6 +73232,10 @@ function New-CsTeamsMessagingPolicy [System.Boolean] $AllowStickers, + [Parameter()] + [System.Boolean] + $CreateCustomEmojis, + [Parameter()] [System.Boolean] $AllowSmartCompose, @@ -73121,6 +73252,10 @@ function New-CsTeamsMessagingPolicy [System.Boolean] $AllowGiphyDisplay, + [Parameter()] + [System.String] + $DesignerForBackgroundsAndImages, + [Parameter()] [System.Boolean] $AllowChatWithGroup, @@ -73130,12 +73265,12 @@ function New-CsTeamsMessagingPolicy $AllowCommunicationComplianceEndUserReporting, [Parameter()] - [System.String] - $ChatPermissionRole, + [System.Boolean] + $AllowImmersiveReader, [Parameter()] [System.Boolean] - $AllowImmersiveReader, + $AllowCustomGroupChatAvatars, [Parameter()] [System.Boolean] @@ -73163,7 +73298,7 @@ function New-CsTeamsMessagingPolicy [Parameter()] [System.String] - $Description, + $ChatPermissionRole, [Parameter()] [System.Boolean] @@ -73296,6 +73431,10 @@ function New-CsTeamsUpdateManagementPolicy [System.Nullable`1[System.DateTime]] $UpdateTimeOfDay, + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm, + [Parameter()] [System.Boolean] $AllowManagedUpdates, @@ -73317,14 +73456,43 @@ function New-CsTeamsUpdateManagementPolicy $AllowPublicPreview, [Parameter()] - [System.Management.Automation.SwitchParameter] - $Confirm, + [System.Management.Automation.PSListModifier`1[System.String]] + $DisabledInProductMessages, [Parameter()] [System.String] $UseNewTeamsClient ) } +function New-CsTeamsVdiPolicy +{ + [CmdletBinding()] + param( + [Parameter()] + [System.String] + $VDI2Optimization, + + [Parameter()] + [System.Boolean] + $DisableCallsAndMeetings, + + [Parameter()] + [System.String] + $Identity, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm, + + [Parameter()] + [System.Boolean] + $DisableAudioVideoInCallsAndMeetings, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Force + ) +} function New-Team { [CmdletBinding()] @@ -73633,6 +73801,23 @@ function Remove-CsTeamsFeedbackPolicy $Identity ) } +function Remove-CsTeamsFilesPolicy +{ + [CmdletBinding()] + param( + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Force, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm, + + [Parameter()] + [System.String] + $Identity + ) +} function Remove-CsTeamsMeetingPolicy { [CmdletBinding()] @@ -73718,6 +73903,23 @@ function Remove-CsTeamsUpdateManagementPolicy $Identity ) } +function Remove-CsTeamsVdiPolicy +{ + [CmdletBinding()] + param( + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Force, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm, + + [Parameter()] + [System.String] + $Identity + ) +} function Remove-Team { [CmdletBinding()] @@ -73879,6 +74081,10 @@ function Set-CsTeamsAppSetupPolicy [PSObject] $AppPresetList, + [Parameter()] + [PSObject] + $AdditionalCustomizationApps, + [Parameter()] [System.Boolean] $AllowUserPinning, @@ -74249,6 +74455,10 @@ function Set-CsTeamsEventsPolicy [System.String] $AllowWebinars, + [Parameter()] + [System.Boolean] + $UseMicrosoftECDN, + [Parameter()] [System.String] $AllowTownhalls, @@ -74299,6 +74509,35 @@ function Set-CsTeamsFeedbackPolicy $Force ) } +function Set-CsTeamsFilesPolicy +{ + [CmdletBinding()] + param( + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Force, + + [Parameter()] + [System.String] + $DefaultFileUploadAppId, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm, + + [Parameter()] + [System.String] + $NativeFileEntryPoints, + + [Parameter()] + [System.String] + $Identity, + + [Parameter()] + [System.String] + $SPChannelFilesTab + ) +} function Set-CsTeamsMeetingConfiguration { [CmdletBinding()] @@ -74315,10 +74554,6 @@ function Set-CsTeamsMeetingConfiguration [System.String] $Identity, - [Parameter()] - [System.String] - $LegalURL, - [Parameter()] [System.Management.Automation.SwitchParameter] $Force, @@ -74355,6 +74590,10 @@ function Set-CsTeamsMeetingConfiguration [System.Nullable`1[System.UInt32]] $ClientVideoPort, + [Parameter()] + [System.String] + $FeedbackSurveyForAnonymousUsers, + [Parameter()] [System.Nullable`1[System.UInt32]] $ClientAudioPortRange, @@ -74373,7 +74612,11 @@ function Set-CsTeamsMeetingConfiguration [Parameter()] [System.String] - $HelpURL + $HelpURL, + + [Parameter()] + [System.String] + $LegalURL ) } function Set-CsTeamsMeetingPolicy @@ -74381,8 +74624,16 @@ function Set-CsTeamsMeetingPolicy [CmdletBinding()] param( [Parameter()] - [System.String] - $TeamsCameraFarEndPTZMode, + [System.Management.Automation.SwitchParameter] + $Confirm, + + [Parameter()] + [System.String] + $VoiceIsolation, + + [Parameter()] + [System.String] + $Copilot, [Parameter()] [System.String] @@ -74424,6 +74675,10 @@ function Set-CsTeamsMeetingPolicy [System.String] $ExplicitRecordingConsent, + [Parameter()] + [System.String] + $ContentSharingInExternalMeetings, + [Parameter()] [System.Nullable`1[System.Int64]] $WatermarkForCameraVideoOpacity, @@ -74432,6 +74687,10 @@ function Set-CsTeamsMeetingPolicy [System.Boolean] $AllowTranscription, + [Parameter()] + [System.Boolean] + $AllowMeetNow, + [Parameter()] [System.Boolean] $AllowWatermarkCustomizationForCameraVideo, @@ -74458,7 +74717,7 @@ function Set-CsTeamsMeetingPolicy [Parameter()] [System.String] - $AllowUserToJoinExternalMeeting, + $SmsNotifications, [Parameter()] [System.Boolean] @@ -74488,6 +74747,10 @@ function Set-CsTeamsMeetingPolicy [System.String] $RecordingStorageMode, + [Parameter()] + [System.String] + $ParticipantNameChange, + [Parameter()] [System.String] $ScreenSharingMode, @@ -74532,10 +74795,6 @@ function Set-CsTeamsMeetingPolicy [System.Boolean] $AllowOrganizersToOverrideLobbySettings, - [Parameter()] - [System.String] - $CopilotWithoutTranscript, - [Parameter()] [System.Boolean] $AllowWatermarkCustomizationForScreenSharing, @@ -74548,6 +74807,10 @@ function Set-CsTeamsMeetingPolicy [System.String] $Description, + [Parameter()] + [System.Boolean] + $DetectSensitiveContentDuringScreenSharing, + [Parameter()] [System.Boolean] $AllowNDIStreaming, @@ -74573,8 +74836,8 @@ function Set-CsTeamsMeetingPolicy $AllowImmersiveView, [Parameter()] - [System.Boolean] - $AllowMeetNow, + [System.String] + $AutomaticallyStartCopilot, [Parameter()] [System.Boolean] @@ -74608,6 +74871,14 @@ function Set-CsTeamsMeetingPolicy [System.String] $SpeakerAttributionMode, + [Parameter()] + [System.String] + $WatermarkForAnonymousUsers, + + [Parameter()] + [System.String] + $AllowedUsersForMeetingContext, + [Parameter()] [System.String] $Identity, @@ -74621,8 +74892,8 @@ function Set-CsTeamsMeetingPolicy $AllowOutlookAddIn, [Parameter()] - [System.Management.Automation.SwitchParameter] - $Confirm, + [System.String] + $CaptchaVerificationForAnonymousUsers, [Parameter()] [System.String] @@ -74648,6 +74919,10 @@ function Set-CsTeamsMeetingPolicy [System.Nullable`1[System.UInt32]] $MediaBitRateKb, + [Parameter()] + [System.String] + $TeamsCameraFarEndPTZMode, + [Parameter()] [System.String] $EnrollUserOverride, @@ -74664,6 +74939,10 @@ function Set-CsTeamsMeetingPolicy [System.Boolean] $AllowChannelMeetingScheduling, + [Parameter()] + [System.String] + $ExternalMeetingJoin, + [Parameter()] [System.Boolean] $AllowMeetingReactions, @@ -74714,7 +74993,11 @@ function Set-CsTeamsMeetingPolicy [Parameter()] [System.String] - $IPVideoMode + $IPVideoMode, + + [Parameter()] + [System.String] + $AutoRecording ) } function Set-CsTeamsMessagingPolicy @@ -74741,6 +75024,10 @@ function Set-CsTeamsMessagingPolicy [System.Boolean] $AllowGiphy, + [Parameter()] + [System.Boolean] + $DeleteCustomEmojis, + [Parameter()] [System.Boolean] $AllowUserDeleteMessage, @@ -74749,6 +75036,10 @@ function Set-CsTeamsMessagingPolicy [System.String] $ChannelsInChatListEnabledType, + [Parameter()] + [System.String] + $Description, + [Parameter()] [System.Management.Automation.SwitchParameter] $Force, @@ -74757,6 +75048,10 @@ function Set-CsTeamsMessagingPolicy [System.Boolean] $AllowStickers, + [Parameter()] + [System.Boolean] + $CreateCustomEmojis, + [Parameter()] [System.Boolean] $AllowSmartCompose, @@ -74773,6 +75068,10 @@ function Set-CsTeamsMessagingPolicy [System.Boolean] $AllowGiphyDisplay, + [Parameter()] + [System.String] + $DesignerForBackgroundsAndImages, + [Parameter()] [System.Boolean] $AllowChatWithGroup, @@ -74782,12 +75081,12 @@ function Set-CsTeamsMessagingPolicy $AllowCommunicationComplianceEndUserReporting, [Parameter()] - [System.String] - $ChatPermissionRole, + [System.Boolean] + $AllowImmersiveReader, [Parameter()] [System.Boolean] - $AllowImmersiveReader, + $AllowCustomGroupChatAvatars, [Parameter()] [System.Boolean] @@ -74815,7 +75114,7 @@ function Set-CsTeamsMessagingPolicy [Parameter()] [System.String] - $Description, + $ChatPermissionRole, [Parameter()] [System.Boolean] @@ -74948,6 +75247,10 @@ function Set-CsTeamsUpdateManagementPolicy [System.Nullable`1[System.DateTime]] $UpdateTimeOfDay, + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm, + [Parameter()] [System.Boolean] $AllowManagedUpdates, @@ -74969,8 +75272,8 @@ function Set-CsTeamsUpdateManagementPolicy $AllowPublicPreview, [Parameter()] - [System.Management.Automation.SwitchParameter] - $Confirm, + [System.Management.Automation.PSListModifier`1[System.String]] + $DisabledInProductMessages, [Parameter()] [System.String] @@ -75006,6 +75309,35 @@ function Set-CsTeamsUpgradeConfiguration $BlockLegacyAuthorization ) } +function Set-CsTeamsVdiPolicy +{ + [CmdletBinding()] + param( + [Parameter()] + [System.String] + $VDI2Optimization, + + [Parameter()] + [System.Boolean] + $DisableCallsAndMeetings, + + [Parameter()] + [System.String] + $Identity, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm, + + [Parameter()] + [System.Boolean] + $DisableAudioVideoInCallsAndMeetings, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Force + ) +} function Set-Team { [CmdletBinding()] @@ -75128,6 +75460,35 @@ function Set-TeamChannel $NewDisplayName ) } +function Update-M365TeamsApp +{ + [CmdletBinding()] + param( + [Parameter()] + [System.String] + $Id, + + [Parameter()] + [System.String] + $OperationType, + + [Parameter()] + [System.String[]] + $Groups, + + [Parameter()] + [System.String] + $AppAssignmentType, + + [Parameter()] + [System.String[]] + $Users, + + [Parameter()] + [System.String] + $IsBlocked + ) +} function Find-CsGroup { [CmdletBinding()] @@ -75753,23 +76114,6 @@ function Get-CsTeamsEnhancedEncryptionPolicy $MsftInternalProcessingMode ) } -function Get-CsTeamsFilesPolicy -{ - [CmdletBinding()] - param( - [Parameter()] - [System.String] - $Filter, - - [Parameter()] - [System.String] - $Identity, - - [Parameter()] - [System.String] - $MsftInternalProcessingMode - ) -} function Get-CsTeamsGuestCallingConfiguration { [CmdletBinding()] @@ -75974,23 +76318,6 @@ function Get-CsTeamsUpgradePolicy $MsftInternalProcessingMode ) } -function Get-CsTeamsVdiPolicy -{ - [CmdletBinding()] - param( - [Parameter()] - [System.String] - $Filter, - - [Parameter()] - [System.String] - $Identity, - - [Parameter()] - [System.String] - $MsftInternalProcessingMode - ) -} function Get-CsTeamsWorkLoadPolicy { [CmdletBinding()] @@ -76916,6 +77243,18 @@ function New-CsCallQueue [System.Guid[]] $Users, + [Parameter()] + [System.String] + $CallbackOfferTextToSpeechPrompt, + + [Parameter()] + [System.Int16] + $TimeoutActionCallPriority, + + [Parameter()] + [System.String] + $TimeoutRedirectVoiceAppAudioFilePrompt, + [Parameter()] [System.Int16] $TimeoutThreshold, @@ -76928,6 +77267,10 @@ function New-CsCallQueue [System.Boolean] $EnableOverflowSharedVoicemailTranscription, + [Parameter()] + [System.Nullable`1[System.Int32]] + $WaitTimeBeforeOfferingCallbackInSecond, + [Parameter()] [System.String] $NoAgentRedirectVoicemailTextToSpeechPrompt, @@ -76948,6 +77291,10 @@ function New-CsCallQueue [System.String] $OverflowSharedVoicemailAudioFilePrompt, + [Parameter()] + [System.Boolean] + $IsCallbackEnabled, + [Parameter()] [System.Int16] $AgentAlertTime, @@ -76966,11 +77313,15 @@ function New-CsCallQueue [Parameter()] [System.String] - $OverflowRedirectVoicemailTextToSpeechPrompt, + $CallbackRequestDtmf, [Parameter()] [System.String] - $TimeoutRedirectVoicemailTextToSpeechPrompt, + $OverflowRedirectVoicemailTextToSpeechPrompt, + + [Parameter()] + [System.Nullable`1[System.Int32]] + $ServiceLevelThresholdResponseTimeInSecond, [Parameter()] [PSObject] @@ -76980,6 +77331,10 @@ function New-CsCallQueue [System.Guid[]] $OboResourceAccountIds, + [Parameter()] + [System.Nullable`1[System.Int32]] + $NumberOfCallsInQueueBeforeOfferingCallback, + [Parameter()] [System.String] $NoAgentSharedVoicemailTextToSpeechPrompt, @@ -76988,6 +77343,10 @@ function New-CsCallQueue [System.Boolean] $EnableOverflowSharedVoicemailSystemPromptSuppression, + [Parameter()] + [System.Guid[]] + $DistributionLists, + [Parameter()] [System.String] $LineUri, @@ -76996,6 +77355,10 @@ function New-CsCallQueue [System.Boolean] $UseDefaultMusicOnHold, + [Parameter()] + [System.Int16] + $NoAgentActionCallPriority, + [Parameter()] [System.String] $OverflowActionTarget, @@ -77033,13 +77396,17 @@ function New-CsCallQueue $EnableNoAgentSharedVoicemailTranscription, [Parameter()] - [System.String] - $TimeoutActionTarget, + [System.Boolean] + $EnableTimeoutSharedVoicemailTranscription, [Parameter()] [System.Boolean] $ShouldOverwriteCallableChannelProperty, + [Parameter()] + [System.String] + $CallbackEmailNotificationTarget, + [Parameter()] [System.String] $NoAgentRedirectVoiceAppTextToSpeechPrompt, @@ -77064,6 +77431,10 @@ function New-CsCallQueue [System.String] $TimeoutDisconnectAudioFilePrompt, + [Parameter()] + [System.String] + $NoAgentRedirectPersonAudioFilePrompt, + [Parameter()] [System.String] $OverflowRedirectVoiceAppAudioFilePrompt, @@ -77085,8 +77456,8 @@ function New-CsCallQueue $HideAuthorizedUsers, [Parameter()] - [PSObject] - $HttpPipelinePrepend, + [System.String] + $TimeoutRedirectVoicemailTextToSpeechPrompt, [Parameter()] [System.String] @@ -77101,12 +77472,12 @@ function New-CsCallQueue $NoAgentActionTarget, [Parameter()] - [System.Guid[]] - $DistributionLists, + [System.Nullable`1[System.Int32]] + $CallToAgentRatioThresholdBeforeOfferingCallback, [Parameter()] - [System.String] - $TimeoutRedirectVoiceAppAudioFilePrompt, + [PSObject] + $HttpPipelinePrepend, [Parameter()] [System.String] @@ -77124,13 +77495,17 @@ function New-CsCallQueue [System.Management.Automation.SwitchParameter] $Force, + [Parameter()] + [System.String] + $TimeoutActionTarget, + [Parameter()] [System.String] $TimeoutRedirectVoicemailAudioFilePrompt, [Parameter()] [System.String] - $NoAgentRedirectPhoneNumberTextToSpeechPrompt, + $CallbackOfferAudioFilePromptResourceId, [Parameter()] [System.String] @@ -77164,10 +77539,6 @@ function New-CsCallQueue [System.String] $Name, - [Parameter()] - [System.Boolean] - $EnableTimeoutSharedVoicemailTranscription, - [Parameter()] [System.Int16] $OverflowThreshold, @@ -77186,7 +77557,11 @@ function New-CsCallQueue [Parameter()] [System.String] - $NoAgentRedirectPersonAudioFilePrompt, + $NoAgentRedirectPhoneNumberTextToSpeechPrompt, + + [Parameter()] + [System.Int16] + $OverflowActionCallPriority, [Parameter()] [PSObject] @@ -77263,57 +77638,162 @@ function New-CsGroupPolicyAssignment $Break ) } -function New-CsOnlineVoiceRoute +function New-CsOnlinePSTNGateway { [CmdletBinding()] param( [Parameter()] [System.String] - $BridgeSourcePhoneNumber, + $Description, + + [Parameter()] + [System.Object] + $OutboundTeamsNumberTranslationRules, [Parameter()] [System.String] - $Description, + $Identity, [Parameter()] - [System.Int32] - $Priority, + [System.Boolean] + $Enabled, [Parameter()] [System.String] - $Name, + $GatewaySiteId, [Parameter()] - [System.Object] - $OnlinePstnGatewayList, + [System.String] + $Fqdn, [Parameter()] - [System.Management.Automation.SwitchParameter] - $Confirm, + [System.Boolean] + $PidfLoSupported, [Parameter()] [System.String] - $Identity, + $BypassMode, [Parameter()] [System.String] - $NumberPattern, + $FailoverResponseCodes, [Parameter()] - [System.Object] - $OnlinePstnUsages, + [System.Boolean] + $SendSipOptions, [Parameter()] [System.String] - $MsftInternalProcessingMode - ) -} -function New-CsOnlineVoiceRoutingPolicy -{ - [CmdletBinding()] - param( + $ProxySbc, + [Parameter()] - [System.String] + [System.Boolean] + $GatewayLbrEnabledUserOverride, + + [Parameter()] + [System.Int32] + $FailoverTimeSeconds, + + [Parameter()] + [System.Object] + $InboundPstnNumberTranslationRules, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm, + + [Parameter()] + [System.Int32] + $SipSignalingPort, + + [Parameter()] + [System.String] + $MediaRelayRoutingLocationOverride, + + [Parameter()] + [System.String] + $MsftInternalProcessingMode, + + [Parameter()] + [System.Object] + $OutboundPstnNumberTranslationRules, + + [Parameter()] + [System.Boolean] + $MediaBypass, + + [Parameter()] + [System.Boolean] + $GatewaySiteLbrEnabled, + + [Parameter()] + [System.Boolean] + $ForwardCallHistory, + + [Parameter()] + [System.Boolean] + $ForwardPai, + + [Parameter()] + [System.Object] + $InboundTeamsNumberTranslationRules, + + [Parameter()] + [System.Nullable`1[System.Int32]] + $MaxConcurrentSessions + ) +} +function New-CsOnlineVoiceRoute +{ + [CmdletBinding()] + param( + [Parameter()] + [System.String] + $BridgeSourcePhoneNumber, + + [Parameter()] + [System.String] + $Description, + + [Parameter()] + [System.Int32] + $Priority, + + [Parameter()] + [System.String] + $Name, + + [Parameter()] + [System.Object] + $OnlinePstnGatewayList, + + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Confirm, + + [Parameter()] + [System.String] + $Identity, + + [Parameter()] + [System.String] + $NumberPattern, + + [Parameter()] + [System.Object] + $OnlinePstnUsages, + + [Parameter()] + [System.String] + $MsftInternalProcessingMode + ) +} +function New-CsOnlineVoiceRoutingPolicy +{ + [CmdletBinding()] + param( + [Parameter()] + [System.String] $RouteType, [Parameter()] @@ -77515,31 +77995,6 @@ function New-CsTeamsEnhancedEncryptionPolicy $MsftInternalProcessingMode ) } -function New-CsTeamsFilesPolicy -{ - [CmdletBinding()] - param( - [Parameter()] - [System.String] - $SPChannelFilesTab, - - [Parameter()] - [System.Management.Automation.SwitchParameter] - $Confirm, - - [Parameter()] - [System.String] - $NativeFileEntryPoints, - - [Parameter()] - [System.String] - $Identity, - - [Parameter()] - [System.String] - $MsftInternalProcessingMode - ) -} function New-CsTeamsIPPhonePolicy { [CmdletBinding()] @@ -77758,31 +78213,6 @@ function New-CsTeamsUnassignedNumberTreatment $MsftInternalProcessingMode ) } -function New-CsTeamsVdiPolicy -{ - [CmdletBinding()] - param( - [Parameter()] - [System.Boolean] - $DisableCallsAndMeetings, - - [Parameter()] - [System.String] - $Identity, - - [Parameter()] - [System.String] - $MsftInternalProcessingMode, - - [Parameter()] - [System.Management.Automation.SwitchParameter] - $Confirm, - - [Parameter()] - [System.Boolean] - $DisableAudioVideoInCallsAndMeetings - ) -} function New-CsTeamsWorkLoadPolicy { [CmdletBinding()] @@ -77832,10 +78262,6 @@ function New-CsTenantDialPlan { [CmdletBinding()] param( - [Parameter()] - [System.Boolean] - $OptimizeDeviceDialing, - [Parameter()] [System.String] $Description, @@ -77852,10 +78278,6 @@ function New-CsTenantDialPlan [System.String] $Identity, - [Parameter()] - [System.String] - $ExternalAccessPrefix, - [Parameter()] [System.String] $SimpleName, @@ -78272,23 +78694,6 @@ function Remove-CsTeamsEnhancedEncryptionPolicy $MsftInternalProcessingMode ) } -function Remove-CsTeamsFilesPolicy -{ - [CmdletBinding()] - param( - [Parameter()] - [System.Management.Automation.SwitchParameter] - $Confirm, - - [Parameter()] - [System.String] - $Identity, - - [Parameter()] - [System.String] - $MsftInternalProcessingMode - ) -} function Remove-CsTeamsIPPhonePolicy { [CmdletBinding()] @@ -78391,23 +78796,6 @@ function Remove-CsTeamsUnassignedNumberTreatment $MsftInternalProcessingMode ) } -function Remove-CsTeamsVdiPolicy -{ - [CmdletBinding()] - param( - [Parameter()] - [System.Management.Automation.SwitchParameter] - $Confirm, - - [Parameter()] - [System.String] - $Identity, - - [Parameter()] - [System.String] - $MsftInternalProcessingMode - ) -} function Remove-CsTeamsWorkLoadPolicy { [CmdletBinding()] @@ -78522,6 +78910,18 @@ function Set-CsCallQueue [System.Guid[]] $Users, + [Parameter()] + [System.String] + $CallbackOfferTextToSpeechPrompt, + + [Parameter()] + [System.Int16] + $TimeoutActionCallPriority, + + [Parameter()] + [System.String] + $TimeoutRedirectVoiceAppAudioFilePrompt, + [Parameter()] [System.Int16] $TimeoutThreshold, @@ -78534,6 +78934,10 @@ function Set-CsCallQueue [System.Boolean] $EnableOverflowSharedVoicemailTranscription, + [Parameter()] + [System.Nullable`1[System.Int32]] + $WaitTimeBeforeOfferingCallbackInSecond, + [Parameter()] [System.String] $NoAgentRedirectVoicemailTextToSpeechPrompt, @@ -78554,6 +78958,10 @@ function Set-CsCallQueue [System.String] $OverflowSharedVoicemailAudioFilePrompt, + [Parameter()] + [System.Boolean] + $IsCallbackEnabled, + [Parameter()] [System.Int16] $AgentAlertTime, @@ -78562,17 +78970,25 @@ function Set-CsCallQueue [System.String] $TimeoutSharedVoicemailTextToSpeechPrompt, + [Parameter()] + [System.Nullable`1[System.Int32]] + $CallToAgentRatioThresholdBeforeOfferingCallback, + [Parameter()] [System.Boolean] $EnableNoAgentSharedVoicemailSystemPromptSuppression, [Parameter()] [System.String] - $OverflowRedirectVoicemailTextToSpeechPrompt, + $CallbackRequestDtmf, [Parameter()] [System.String] - $TimeoutRedirectVoicemailTextToSpeechPrompt, + $OverflowRedirectVoicemailTextToSpeechPrompt, + + [Parameter()] + [System.Nullable`1[System.Int32]] + $ServiceLevelThresholdResponseTimeInSecond, [Parameter()] [PSObject] @@ -78586,6 +79002,10 @@ function Set-CsCallQueue [System.Guid[]] $OboResourceAccountIds, + [Parameter()] + [System.Nullable`1[System.Int32]] + $NumberOfCallsInQueueBeforeOfferingCallback, + [Parameter()] [System.String] $NoAgentSharedVoicemailTextToSpeechPrompt, @@ -78602,6 +79022,10 @@ function Set-CsCallQueue [System.Boolean] $UseDefaultMusicOnHold, + [Parameter()] + [System.Int16] + $NoAgentActionCallPriority, + [Parameter()] [System.String] $OverflowActionTarget, @@ -78635,13 +79059,17 @@ function Set-CsCallQueue $PresenceBasedRouting, [Parameter()] - [System.String] - $TimeoutActionTarget, + [System.Boolean] + $EnableTimeoutSharedVoicemailTranscription, [Parameter()] [System.Boolean] $ShouldOverwriteCallableChannelProperty, + [Parameter()] + [System.String] + $CallbackEmailNotificationTarget, + [Parameter()] [System.String] $NoAgentRedirectVoiceAppTextToSpeechPrompt, @@ -78691,8 +79119,8 @@ function Set-CsCallQueue $HideAuthorizedUsers, [Parameter()] - [PSObject] - $HttpPipelinePrepend, + [System.String] + $TimeoutRedirectVoicemailTextToSpeechPrompt, [Parameter()] [System.String] @@ -78712,7 +79140,11 @@ function Set-CsCallQueue [Parameter()] [System.String] - $TimeoutRedirectVoiceAppAudioFilePrompt, + $CallbackOfferAudioFilePromptResourceId, + + [Parameter()] + [PSObject] + $HttpPipelinePrepend, [Parameter()] [System.Management.Automation.SwitchParameter] @@ -78724,11 +79156,11 @@ function Set-CsCallQueue [Parameter()] [System.String] - $OverflowRedirectPersonAudioFilePrompt, + $WelcomeTextToSpeechPrompt, [Parameter()] - [System.String] - $OverflowRedirectPersonTextToSpeechPrompt, + [PSObject] + $NoAgentAction, [Parameter()] [System.String] @@ -78738,6 +79170,10 @@ function Set-CsCallQueue [System.Management.Automation.SwitchParameter] $Force, + [Parameter()] + [System.String] + $TimeoutActionTarget, + [Parameter()] [System.String] $TimeoutRedirectVoicemailAudioFilePrompt, @@ -78751,8 +79187,8 @@ function Set-CsCallQueue $NoAgentDisconnectTextToSpeechPrompt, [Parameter()] - [PSObject] - $NoAgentAction, + [System.String] + $TimeoutRedirectPersonAudioFilePrompt, [Parameter()] [System.String] @@ -78766,6 +79202,10 @@ function Set-CsCallQueue [PSObject] $RoutingMethod, + [Parameter()] + [System.String] + $OverflowRedirectPersonAudioFilePrompt, + [Parameter()] [System.Guid] $ChannelUserObjectId, @@ -78778,10 +79218,6 @@ function Set-CsCallQueue [System.String] $Name, - [Parameter()] - [System.Boolean] - $EnableTimeoutSharedVoicemailTranscription, - [Parameter()] [System.Int16] $OverflowThreshold, @@ -78792,7 +79228,7 @@ function Set-CsCallQueue [Parameter()] [System.String] - $WelcomeTextToSpeechPrompt, + $NoAgentRedirectVoiceAppAudioFilePrompt, [Parameter()] [System.String] @@ -78803,16 +79239,16 @@ function Set-CsCallQueue $Identity, [Parameter()] - [PSObject] - $NoAgentApplyTo, + [System.Int16] + $OverflowActionCallPriority, [Parameter()] - [System.String] - $NoAgentRedirectVoiceAppAudioFilePrompt, + [PSObject] + $NoAgentApplyTo, [Parameter()] [System.String] - $TimeoutRedirectPersonAudioFilePrompt + $OverflowRedirectPersonTextToSpeechPrompt ) } function Set-CsOnlineDialInConferencingTenantSettings @@ -78934,8 +79370,8 @@ function Set-CsOnlineVoicemailUserSettings [CmdletBinding()] param( [Parameter()] - [System.Management.Automation.SwitchParameter] - $Force, + [System.String] + $DefaultGreetingPromptOverwrite, [Parameter()] [PSObject] @@ -78945,6 +79381,10 @@ function Set-CsOnlineVoicemailUserSettings [System.Boolean] $OofGreetingEnabled, + [Parameter()] + [System.Management.Automation.SwitchParameter] + $Force, + [Parameter()] [System.String] $PromptLanguage, @@ -78973,14 +79413,6 @@ function Set-CsOnlineVoicemailUserSettings [System.Boolean] $VoicemailEnabled, - [Parameter()] - [System.Boolean] - $OofGreetingFollowCalendarEnabled, - - [Parameter()] - [System.String] - $DefaultGreetingPromptOverwrite, - [Parameter()] [System.Boolean] $OofGreetingFollowAutomaticRepliesEnabled, @@ -79064,10 +79496,6 @@ function Set-CsPhoneNumberAssignment { [CmdletBinding()] param( - [Parameter()] - [System.String] - $PhoneNumber, - [Parameter()] [PSObject] $HttpPipelinePrepend, @@ -79080,6 +79508,10 @@ function Set-CsPhoneNumberAssignment [System.String] $PhoneNumberType, + [Parameter()] + [System.String] + $ReverseNumberLookup, + [Parameter()] [System.String] $AssignmentCategory, @@ -79088,13 +79520,17 @@ function Set-CsPhoneNumberAssignment [System.String] $Identity, + [Parameter()] + [System.String] + $NetworkSiteId, + [Parameter()] [System.String] $LocationId, [Parameter()] [System.String] - $NetworkSiteId + $PhoneNumber ) } function Set-CsTeamsAudioConferencingPolicy @@ -79331,31 +79767,6 @@ function Set-CsTeamsEnhancedEncryptionPolicy $MsftInternalProcessingMode ) } -function Set-CsTeamsFilesPolicy -{ - [CmdletBinding()] - param( - [Parameter()] - [System.String] - $SPChannelFilesTab, - - [Parameter()] - [System.Management.Automation.SwitchParameter] - $Confirm, - - [Parameter()] - [System.String] - $NativeFileEntryPoints, - - [Parameter()] - [System.String] - $Identity, - - [Parameter()] - [System.String] - $MsftInternalProcessingMode - ) -} function Set-CsTeamsGuestCallingConfiguration { [CmdletBinding()] @@ -79739,31 +80150,6 @@ function Set-CsTeamsUnassignedNumberTreatment $MsftInternalProcessingMode ) } -function Set-CsTeamsVdiPolicy -{ - [CmdletBinding()] - param( - [Parameter()] - [System.Boolean] - $DisableCallsAndMeetings, - - [Parameter()] - [System.String] - $Identity, - - [Parameter()] - [System.String] - $MsftInternalProcessingMode, - - [Parameter()] - [System.Management.Automation.SwitchParameter] - $Confirm, - - [Parameter()] - [System.Boolean] - $DisableAudioVideoInCallsAndMeetings - ) -} function Set-CsTeamsWorkLoadPolicy { [CmdletBinding()] @@ -79813,10 +80199,6 @@ function Set-CsTenantDialPlan { [CmdletBinding()] param( - [Parameter()] - [System.Boolean] - $OptimizeDeviceDialing, - [Parameter()] [System.String] $Description, @@ -79833,10 +80215,6 @@ function Set-CsTenantDialPlan [System.String] $Identity, - [Parameter()] - [System.String] - $ExternalAccessPrefix, - [Parameter()] [System.String] $SimpleName, @@ -79851,56 +80229,64 @@ function Set-CsTenantFederationConfiguration [CmdletBinding()] param( [Parameter()] - [System.Boolean] - $AllowTeamsConsumerInbound, + [System.Object] + $AllowedDomainsAsAList, [Parameter()] - [System.Boolean] - $SharedSipAddressSpace, + [System.String] + $Identity, [Parameter()] - [System.Object] - $BlockedDomains, + [System.Management.Automation.SwitchParameter] + $Confirm, [Parameter()] [System.Boolean] - $TreatDiscoveredPartnersAsUnverified, + $BlockAllSubdomains, [Parameter()] - [System.Management.Automation.SwitchParameter] - $Confirm, + [System.Boolean] + $RestrictTeamsConsumerToExternalUserProfiles, [Parameter()] [System.Boolean] - $AllowTeamsConsumer, + $AllowTeamsConsumerInbound, [Parameter()] - [System.Object] - $AllowedDomainsAsAList, + [System.Boolean] + $AllowTeamsConsumer, [Parameter()] - [System.Object] - $AllowedDomains, + [System.Boolean] + $AllowFederatedUsers, [Parameter()] - [System.String] - $Identity, + [System.Object] + $BlockedDomains, [Parameter()] [System.Boolean] - $AllowPublicUsers, + $SharedSipAddressSpace, [Parameter()] [System.String] $MsftInternalProcessingMode, + [Parameter()] + [System.String] + $ExternalAccessWithTrialTenants, + + [Parameter()] + [System.Object] + $AllowedDomains, + [Parameter()] [System.Boolean] - $AllowFederatedUsers, + $TreatDiscoveredPartnersAsUnverified, [Parameter()] [System.Boolean] - $RestrictTeamsConsumerToExternalUserProfiles + $AllowPublicUsers ) } function Set-CsTenantNetworkRegion @@ -80162,8 +80548,6 @@ function Set-CsUserCallingSettings ) } #endregion - - #region Microsoft.Graph.Beta.DeviceManagement.Administration function Get-MgBetaDeviceManagementRoleDefinition { From 489618b0ce6ec6d08e7b2c6ae06dec2defda6e82 Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 20 Jun 2024 06:57:31 -0400 Subject: [PATCH 15/19] Update Microsoft365.psm1 --- Tests/Unit/Stubs/Microsoft365.psm1 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Tests/Unit/Stubs/Microsoft365.psm1 b/Tests/Unit/Stubs/Microsoft365.psm1 index 8fd08666bf..e915d786e8 100644 --- a/Tests/Unit/Stubs/Microsoft365.psm1 +++ b/Tests/Unit/Stubs/Microsoft365.psm1 @@ -79381,6 +79381,10 @@ function Set-CsOnlineVoicemailUserSettings [System.Boolean] $OofGreetingEnabled, + [Parameter()] + [System.Boolean] + $OofGreetingFollowCalendarEnabled, + [Parameter()] [System.Management.Automation.SwitchParameter] $Force, From 5e90c28770b459259f3e1e0c1b913095891e95b4 Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Thu, 20 Jun 2024 11:40:35 +0000 Subject: [PATCH 16/19] Updated Resources and Cmdlet documentation pages --- docs/docs/resources/teams/TeamsM365App.md | 81 +++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docs/docs/resources/teams/TeamsM365App.md diff --git a/docs/docs/resources/teams/TeamsM365App.md b/docs/docs/resources/teams/TeamsM365App.md new file mode 100644 index 0000000000..4173cf7041 --- /dev/null +++ b/docs/docs/resources/teams/TeamsM365App.md @@ -0,0 +1,81 @@ +# TeamsM365App + +## Parameters + +| Parameter | Attribute | DataType | Description | Allowed Values | +| --- | --- | --- | --- | --- | +| **Id** | Key | String | Application ID of Microsoft Teams app. | | +| **IsBlocked** | Write | Boolean | The state of the app in the tenant. | | +| **AssignmentType** | Write | String | App availability type. | `Everyone`, `UsersAndGroups`, `NoOne` | +| **Users** | Write | StringArray[] | List of all the users for whom the app is enabled or disabled. | | +| **Groups** | Write | StringArray[] | List of all the groups for whom the app is enabled or disabled. | | +| **Credential** | Write | PSCredential | Credentials of the workload's Admin | | +| **ApplicationId** | Write | String | Id of the Azure Active Directory application to authenticate with. | | +| **TenantId** | Write | String | Id of the Azure Active Directory tenant used for authentication. | | +| **CertificateThumbprint** | Write | String | Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication. | | +| **ManagedIdentity** | Write | Boolean | Managed ID being used for authentication. | | +| **AccessTokens** | Write | StringArray[] | Access token used for authentication. | | + + +## Description + +This resource manages Teams app. This includes app state, app availability, user who updated app availability, and the associated timestamp. + +## Permissions + +### Microsoft Graph + +To authenticate with the Microsoft Graph API, this resource required the following permissions: + +#### Delegated permissions + +- **Read** + + - None + +- **Update** + + - None + +#### Application permissions + +- **Read** + + - Organization.Read.All + +- **Update** + + - Organization.Read.All + +## Examples + +### Example 1 + +This example is used to test new resources and showcase the usage of new resources being worked on. +It is not meant to use as a production baseline. + +```powershell +Configuration Example +{ + param( + [Parameter(Mandatory = $true)] + [PSCredential] + $Credscredential + ) + Import-DscResource -ModuleName Microsoft365DSC + + node localhost + { + TeamsM365App "TeamsM365App-Update" + { + AssignmentType = "UsersAndGroups"; + Credential = $Credscredential; + Groups = @("Finance Team"); + Id = "95de633a-083e-42f5-b444-a4295d8e9314"; + IsBlocked = $False; + Users = @(); + } + } +} +``` + From a7d795f180030f9cf8ab31daa6ce38148272658e Mon Sep 17 00:00:00 2001 From: NikCharlebois Date: Thu, 20 Jun 2024 11:41:57 +0000 Subject: [PATCH 17/19] Updated Schema Definition --- Modules/Microsoft365DSC/SchemaDefinition.json | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/Modules/Microsoft365DSC/SchemaDefinition.json b/Modules/Microsoft365DSC/SchemaDefinition.json index db99b6df8b..6b881e8506 100644 --- a/Modules/Microsoft365DSC/SchemaDefinition.json +++ b/Modules/Microsoft365DSC/SchemaDefinition.json @@ -41124,6 +41124,66 @@ } ] }, + { + "ClassName": "MSFT_TeamsM365App", + "Parameters": [ + { + "CIMType": "String", + "Name": "Id", + "Option": "Key" + }, + { + "CIMType": "Boolean", + "Name": "IsBlocked", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "AssignmentType", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "Users", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "Groups", + "Option": "Write" + }, + { + "CIMType": "MSFT_Credential", + "Name": "Credential", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "ApplicationId", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "TenantId", + "Option": "Write" + }, + { + "CIMType": "String", + "Name": "CertificateThumbprint", + "Option": "Write" + }, + { + "CIMType": "Boolean", + "Name": "ManagedIdentity", + "Option": "Write" + }, + { + "CIMType": "String[]", + "Name": "AccessTokens", + "Option": "Write" + } + ] + }, { "ClassName": "MSFT_TeamsMeetingBroadcastConfiguration", "Parameters": [ From 66d19eda303db19750f35d4cedd188ee3a5bb9fd Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 20 Jun 2024 07:42:02 -0400 Subject: [PATCH 18/19] Release 1.24.619.1 --- CHANGELOG.md | 2 +- Modules/Microsoft365DSC/Microsoft365DSC.psd1 | 21 ++++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bfe98ee209..d6508fa1e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change log for Microsoft365DSC -# UNRELEASED +# 1.24.619.1 * SCDLPComplianceRule * Fix #4259 and #3845 diff --git a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 index 4aeeec83ea..9fa4b54885 100644 --- a/Modules/Microsoft365DSC/Microsoft365DSC.psd1 +++ b/Modules/Microsoft365DSC/Microsoft365DSC.psd1 @@ -3,7 +3,7 @@ # # Generated by: Microsoft Corporation # -# Generated on: 2024-06-12 +# Generated on: 2024-06-20 @{ @@ -11,7 +11,7 @@ # RootModule = '' # Version number of this module. - ModuleVersion = '1.24.612.1' + ModuleVersion = '1.24.619.1' # Supported PSEditions # CompatiblePSEditions = @() @@ -142,15 +142,14 @@ IconUri = 'https://github.com/microsoft/Microsoft365DSC/blob/Dev/Modules/Microsoft365DSC/Dependencies/Images/Logo.png?raw=true' # ReleaseNotes of this module - ReleaseNotes = '* IntuneAppConfigurationDevicePolicy - * Add conversion from `payloadJson` to actual JSON. -* SPOTenantSettings - * Connect to Graph before Sharepoint Online - FIXES [#4746](https://github.com/microsoft/Microsoft365DSC/issues/4746) -* TeamsMeetingPolicy - * Updated the allowed values for the TeamsCameraFarEndTPTXZmode property. -* M365DSCResourceGenerator - * Fix formatting and missing escape character in Resource Generator' + ReleaseNotes = '* SCDLPComplianceRule + * Fix #4259 and #3845 +* TeamsM365App + * Initial release. +* DEPENDENCIES + * Updated MicrosoftTeams to version 6.4.0. +* MISC + * Improved telemetry around Export sizes.' # Flag to indicate whether the module requires explicit user acceptance for install/update # RequireLicenseAcceptance = $false From 1a2176b250f01f03dfdff154144e6ea4b32812ae Mon Sep 17 00:00:00 2001 From: Nik Charlebois Date: Thu, 20 Jun 2024 13:42:50 -0400 Subject: [PATCH 19/19] Delete docs/docs/resources/azure-ad/AADGroupOwnerConsentSettings.md --- .../azure-ad/AADGroupOwnerConsentSettings.md | 114 ------------------ 1 file changed, 114 deletions(-) delete mode 100644 docs/docs/resources/azure-ad/AADGroupOwnerConsentSettings.md diff --git a/docs/docs/resources/azure-ad/AADGroupOwnerConsentSettings.md b/docs/docs/resources/azure-ad/AADGroupOwnerConsentSettings.md deleted file mode 100644 index 8c87bd96a1..0000000000 --- a/docs/docs/resources/azure-ad/AADGroupOwnerConsentSettings.md +++ /dev/null @@ -1,114 +0,0 @@ -# AADGroupOwnerConsentSettings - -## Parameters - -| Parameter | Attribute | DataType | Description | Allowed Values | -| --- | --- | --- | --- | --- | -| **IsSingleInstance** | Key | String | Only valid value is 'Yes'. | `Yes` | -| **EnableGroupSpecificConsent** | Write | Boolean | Flag indicating if groups owners are allowed to grant group specific permissions. | | -| **BlockUserConsentForRiskyApps** | Write | Boolean | Flag indicating if user consent will be blocked when a risky request is detected. Administrators will still be able to consent to apps considered risky. | | -| **EnableAdminConsentRequests** | Write | Boolean | Flag indicating if users will be able to request admin consent when they are unable to grant consent to an app themselves. | | -| **ConstrainGroupSpecificConsentToMembersOfGroupName** | Write | String | If EnableGroupSpecificConsent is set to “True” and this is set to a security group name, members (both direct and transitive) of the group identified will be authorized to grant group-specific permissions to the groups they own. | | -| **Ensure** | Write | String | Specify if the Azure AD Group Consent Settings should exist or not. | `Present`, `Absent` | -| **Credential** | Write | PSCredential | Credentials of the Admin | | -| **ApplicationId** | Write | String | Id of the Azure Active Directory application to authenticate with. | | -| **TenantId** | Write | String | Id of the Azure Active Directory tenant used for authentication. | | -| **ApplicationSecret** | Write | PSCredential | Secret of the Azure Active Directory tenant used for authentication. | | -| **CertificateThumbprint** | Write | String | Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication. | | -| **ManagedIdentity** | Write | Boolean | Managed ID being used for authentication. | | - - -# AADGroupOwnerConsentPolicySettings - -## Description - -Azure AD Group Owner Consent Settings - -## Permissions - -### Microsoft Graph - -To authenticate with the Microsoft Graph API, this resource required the following permissions: - -#### Delegated permissions - -- **Read** - - - Directory.Read.All, Group.Read.All - -- **Update** - - - Directory.ReadWrite.All, Policy.ReadWrite.Authorization - -#### Application permissions - -- **Read** - - - Directory.Read.All, Group.Read.All - -- **Update** - - - Directory.ReadWrite.All, Policy.ReadWrite.Authorization - -## Examples - -### Example 1 - -This example is used to test new resources and showcase the usage of new resources being worked on. -It is not meant to use as a production baseline. - -```powershell -Configuration Example -{ - param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential - ) - Import-DscResource -ModuleName Microsoft365DSC - - node localhost - { - AADGroupOwnerConsentSettings 'Example' - { - IsSingleInstance = "Yes" - EnableGroupSpecificConsent = $false - BlockUserConsentForRiskyApps = $true - EnableAdminConsentRequests = $false - #ConstrainGroupSpecificConsentToMembersOfGroupName = '' # value is only relevant if EnableGroupSpecificConsent is true. See example 2 - Ensure = 'Present' - Credential = $Credscredential - } - } -} -``` - -### Example 2 - -This example is used to test new resources and showcase the usage of new resources being worked on. -It is not meant to use as a production baseline. - -```powershell -Configuration Example -{ - param( - [Parameter(Mandatory = $true)] - [PSCredential] - $Credscredential - ) - Import-DscResource -ModuleName Microsoft365DSC - - node localhost - { - AADGroupOwnerConsentSettings 'Example' - { - IsSingleInstance = "Yes" - EnableGroupSpecificConsent = $true # prerequisite for specifying a constraining group - ConstrainGroupSpecificConsentToMembersOfGroupName = 'Group-Vetted-GroupOwners' - Ensure = 'Present' - Credential = $Credscredential - } - } -} -``` -