diff --git a/Module/ExoHelper/ExoHelper.psd1 b/Module/ExoHelper/ExoHelper.psd1 index 089196f..d84ebfa 100644 --- a/Module/ExoHelper/ExoHelper.psd1 +++ b/Module/ExoHelper/ExoHelper.psd1 @@ -12,7 +12,7 @@ RootModule = 'ExoHelper.psm1' # Version number of this module. -ModuleVersion = '1.1.2' +ModuleVersion = '1.1.3' # Supported PSEditions CompatiblePSEditions = @('Desktop', 'Core') diff --git a/Module/ExoHelper/ExoHelper.psm1 b/Module/ExoHelper/ExoHelper.psm1 index 884601f..ff91d14 100644 --- a/Module/ExoHelper/ExoHelper.psm1 +++ b/Module/ExoHelper/ExoHelper.psm1 @@ -149,6 +149,10 @@ This command retrieves mailbox of user JohnDoe and returns just netId property #If we want to write any warnings returned by EXO REST API $ShowWarnings, + [switch] + #If we want to remove odata type descriptor properties from the output + $RemoveOdataProperties, + [switch] #If we want to include rate limits reported by REST API to verbose output $ShowRateLimits, @@ -161,7 +165,7 @@ This command retrieves mailbox of user JohnDoe and returns just netId property begin { $body = @{} - $batchSize = 1000 + $batchSize = 100 $uri = $Connection.ConnectionUri if($PropertiesToLoad.Count -gt 0) { @@ -241,7 +245,13 @@ This command retrieves mailbox of user JohnDoe and returns just netId property } } $resultsRetrieved+=$responseData.value.Count - $responseData.value + if($RemoveOdataProperties) + { + $responseData.value | RemoveExoOdataProperties + } + else { + $responseData.value + } $pageUri = $responseData.'@odata.nextLink' } catch { @@ -323,3 +333,29 @@ This command retrieves mailbox of user JohnDoe and returns just netId property $progressPreference = $pref } } + +function RemoveExoOdataProperties +{ + [CmdletBinding()] + param ( + [Parameter(Mandatory, ValueFromPipeline)] + [PSCustomObject] + $Object + ) + begin + { + $propsToRemove = $null + } + process + { + if($null -eq $propsToRemove) + { + $propsToRemove = $Object.PSObject.Properties | Where-Object { $_.Name.IndexOf('@') -ge 0 } + } + foreach($prop in $propsToRemove) + { + $Object.PSObject.Properties.Remove($prop.Name) + } + $Object + } +} \ No newline at end of file