backup/Backup-DeviceManagementSettings.ps1

#Requires -Version 7.0
function Backup-DeviceManagementSettings {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)] [string]$BackupPath,
        [Parameter(Mandatory)] [SecureString]$Token,
        [hashtable]$ScopeTagMap = @{}
    )

    try {
        $folder = Join-Path $BackupPath 'Device Management Settings'
        $uri = '/beta/deviceManagement/settings'
        $item = Invoke-GraphRequest2 -Uri $uri -Token $Token

        if ($item) {
            $clean = Remove-VolatileKeys -InputObject $item
            Save-BackupItem -Item $clean -Folder $folder -PresetFileName 'settings' -ScopeTagMap $ScopeTagMap
            Write-Verbose "backed up device management settings to $folder"
        }
    }
    catch {
        Write-Error "failed to backup device management settings: $_"
        return
    }
}

Export-ModuleMember -Function Backup-DeviceManagementSettings