From a0bb7cb3bda67dca8be32ad8071c64174d2eb4a3 Mon Sep 17 00:00:00 2001 From: Jason Baxter <82836110+jbaxter-cgf@users.noreply.github.com> Date: Mon, 17 Jan 2022 11:36:48 -0500 Subject: [PATCH 1/2] Update DeviceConfiguration_Export.ps1 DeviceConfiguration_Export.ps1 does not allow for individual policy export #198 This will now allow you to specify A for All or a named policy for export --- .../DeviceConfiguration_Export.ps1 | 45 +++++++++++++++---- 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/DeviceConfiguration/DeviceConfiguration_Export.ps1 b/DeviceConfiguration/DeviceConfiguration_Export.ps1 index ab069ea..36ec566 100644 --- a/DeviceConfiguration/DeviceConfiguration_Export.ps1 +++ b/DeviceConfiguration/DeviceConfiguration_Export.ps1 @@ -170,8 +170,19 @@ $DCP_resource = "deviceManagement/deviceConfigurations" try { - $uri = "https://graph.microsoft.com/$graphApiVersion/$($DCP_resource)" - (Invoke-RestMethod -Uri $uri -Headers $authToken -Method Get).Value + If ($null -eq $Name) { + + $uri = "https://graph.microsoft.com/$graphApiVersion/$($DCP_resource)" + (Invoke-RestMethod -Uri $uri -Headers $authToken -Method Get).Value + + } + + Else { + + $uri = "https://graph.microsoft.com/$graphApiVersion/$($DCP_resource)?filter=contains(displayName,'$($Name)')" + (Invoke-RestMethod -Uri $uri -Headers $authToken -Method Get).Value + + } } @@ -351,15 +362,33 @@ $ExportPath = Read-Host -Prompt "Please specify a path to export the policy data #################################################### Write-Host +Write-Host "You can export all, or just enter a policy name? A(All) or PolicyName ?" -ForegroundColor Yellow -# Filtering out iOS and Windows Software Update Policies -$DCPs = Get-DeviceConfigurationPolicy | Where-Object { ($_.'@odata.type' -ne "#microsoft.graph.iosUpdateConfiguration") -and ($_.'@odata.type' -ne "#microsoft.graph.windowsUpdateForBusinessConfiguration") } -foreach($DCP in $DCPs){ +$PolicyName = read-host -write-host "Device Configuration Policy:"$DCP.displayName -f Yellow -Export-JSONData -JSON $DCP -ExportPath "$ExportPath" -Write-Host +if($PolicyName -eq "a" -or $PolicyName -eq "A"){ + + # Filtering out iOS and Windows Software Update Policies + $DCPs = Get-DeviceConfigurationPolicy | Where-Object { ($_.'@odata.type' -ne "#microsoft.graph.iosUpdateConfiguration") -and ($_.'@odata.type' -ne "#microsoft.graph.windowsUpdateForBusinessConfiguration") } + foreach($DCP in $DCPs){ + + write-host "Device Configuration Policy:"$DCP.displayName -f Yellow + Export-JSONData -JSON $DCP -ExportPath "$ExportPath" + Write-Host + } +} +else { + # Filtering out specific policies + $DCPs = Get-DeviceConfigurationPolicy -Name "$PolicyName" + foreach($DCP in $DCPs){ + + write-host "Device Configuration Policy:"$DCP.displayName -f Yellow + Export-JSONData -JSON $DCP -ExportPath "$ExportPath" + Write-Host + } } +#################################################### + Write-Host From 7a9529c940f7db68af7514fa59e4f900147293ec Mon Sep 17 00:00:00 2001 From: Jason Baxter <82836110+jbaxter-cgf@users.noreply.github.com> Date: Mon, 17 Jan 2022 11:48:51 -0500 Subject: [PATCH 2/2] Update DeviceConfiguration_Export.ps1 Added parameter Name for function Get-DeviceConfigurationPolicy --- DeviceConfiguration/DeviceConfiguration_Export.ps1 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/DeviceConfiguration/DeviceConfiguration_Export.ps1 b/DeviceConfiguration/DeviceConfiguration_Export.ps1 index 36ec566..a7c766f 100644 --- a/DeviceConfiguration/DeviceConfiguration_Export.ps1 +++ b/DeviceConfiguration/DeviceConfiguration_Export.ps1 @@ -165,6 +165,12 @@ NAME: Get-DeviceConfigurationPolicy [cmdletbinding()] +param +( + [Parameter(Mandatory=$false)] + $Name +) + $graphApiVersion = "Beta" $DCP_resource = "deviceManagement/deviceConfigurations"