backup/Backup-AppleEnrollmentProfiles.ps1
|
#Requires -Version 7.0 function Backup-AppleEnrollmentProfiles { [CmdletBinding()] param( [Parameter(Mandatory)] [string]$BackupPath, [Parameter(Mandatory)] [SecureString]$Token, [hashtable]$ScopeTagMap = @{} ) try { $folder = Join-Path $BackupPath 'Enrollment Profiles' 'Apple' # get DEP token IDs $tokenUri = '/beta/deviceManagement/depOnboardingSettings' $tokens = Invoke-GraphRequest2 -Uri $tokenUri -Token $Token foreach ($depToken in $tokens) { # get enrollment profiles for this token $profileUri = "/beta/deviceManagement/depOnboardingSettings/$($depToken.id)/enrollmentProfiles" $profiles = Invoke-GraphRequest2 -Uri $profileUri -Token $Token foreach ($profile in $profiles) { # construct filename $odataType = $profile.'@odata.type' $type = $odataType -replace '#microsoft\.graph\.', '' $fileName = "$($profile.displayName)_$type" $clean = Remove-VolatileKeys -InputObject $profile Save-BackupItem -Item $clean -Folder $folder -FileName $fileName -ScopeTagMap $ScopeTagMap } } Write-Verbose "backed up apple enrollment profiles to $folder" } catch { Write-Error "failed to backup apple enrollment profiles: $_" return } } Export-ModuleMember -Function Backup-AppleEnrollmentProfiles |