@@ -39,37 +39,44 @@ function Remove-CIPPUserTeamsPhoneDIDs {
3939
4040 if (-not $UserDIDs -or $UserDIDs.Count -eq 0 ) {
4141 $Result = " No Teams Phone DIDs found assigned to user: '$Username ' - '$UserID '"
42- Write-LogMessage - headers $Headers - API $APIName - message $Result - Sev ' Info' - tenant $TenantFilter
4342 $Results.Add ($Result )
4443 return $Results.ToArray ()
4544 }
4645
47- Write-LogMessage - headers $Headers - API $APIName - message " Found $ ( $UserDIDs.Count ) DIDs assigned to user: '$Username '" - Sev ' Info' - tenant $TenantFilter
48-
49- # Process each DID assigned to the user
50- foreach ($DID in $UserDIDs ) {
51- try {
52- $PhoneNumber = $DID.telephoneNumber
53- $NumberType = $DID.numberType
46+ # Prepare bulk requests for all DIDs
47+ $RemoveRequests = foreach ($DID in $UserDIDs ) {
48+ @ {
49+ id = $DID.telephoneNumber
50+ method = ' POST'
51+ url = " admin/teams/telephoneNumberManagement/numberAssignments/unassignNumber"
52+ body = @ {
53+ telephoneNumber = $DID.telephoneNumber
54+ numberType = $DID.numberType
55+ }
56+ }
57+ }
5458
55- # Prepare the request body for unassigning the number
56- $RequestBody = @ {
57- telephoneNumber = $PhoneNumber
58- numberType = $NumberType
59- } | ConvertTo-Json - Depth 3
59+ # Execute bulk request
60+ $RemoveResults = New-GraphBulkRequest - tenantid $TenantFilter - requests @ ($RemoveRequests )
6061
61- # Make the API call to unassign the number
62- $null = New-GraphPostRequest - uri " https://graph.microsoft.com/beta/admin/teams/telephoneNumberManagement/numberAssignments/unassignNumber" - type POST - body $RequestBody - contentType ' application/json' - tenant $TenantFilter
62+ # Process results
63+ $RemoveResults | ForEach-Object {
64+ $PhoneNumber = $_.id
6365
66+ if ($_.status -eq 204 ) {
6467 $SuccessResult = " Successfully removed Teams Phone DID: '$PhoneNumber ' from: '$Username ' - '$UserID '"
6568 Write-LogMessage - headers $Headers - API $APIName - message $SuccessResult - Sev ' Info' - tenant $TenantFilter
6669 $Results.Add ($SuccessResult )
6770 $SuccessCount ++
68-
69- } catch {
70- $ErrorMessage = Get-CippException - Exception $_
71- $ErrorResult = " Failed to remove Teams Phone DID: '$ ( $DID.telephoneNumber ) ' from: '$Username ' - '$UserID '. Error: $ ( $ErrorMessage.NormalizedError ) "
72- Write-LogMessage - headers $Headers - API $APIName - message $ErrorResult - Sev ' Error' - tenant $TenantFilter - LogData $ErrorMessage
71+ } else {
72+ $ErrorMessage = if ($_.body.error.message ) {
73+ $_.body.error.message
74+ } else {
75+ " HTTP Status: $ ( $_.status ) "
76+ }
77+
78+ $ErrorResult = " Failed to remove Teams Phone DID: '$PhoneNumber ' from: '$Username ' - '$UserID '. Error: $ErrorMessage "
79+ Write-LogMessage - headers $Headers - API $APIName - message $ErrorResult - Sev ' Error' - tenant $TenantFilter
7380 $Results.Add ($ErrorResult )
7481 $ErrorCount ++
7582 }
0 commit comments