Functions/Get-AGDeletedUsers.ps1
|
Function Get-AGDeletedUsers{ <# .SYNOPSIS Retrieves deleted Microsoft 365 users via MS Graph API. .DESCRIPTION Retrieves deleted Microsoft 365 users via MS Graph API. .EXAMPLE $AccessToken = Get-AGGraphAccessToken -TenantID $TenantID -ClientID $ClientId -ClientSecret $ClientSecret $Details = Get-AGDeletedUsers -AccessToken $AccessToken This command first gets an access token, which is used to grant access to Graph, and then retrieves deleted users. .EXAMPLE $Details = Get-AGDeletedUsers This command uses the module-scoped token created earlier and then retrieves deleted users. .PARAMETER AccessToken This is the access token that grants you access to Microsoft Graph. If omitted, the function uses the module-scoped token created by Get-AGGraphAccessToken or Get-AGGraphAccessTokenFromAz. .INPUTS None. You cannot pipe input to this function. .OUTPUTS A collection of deleted user objects returned by the Microsoft Graph beta endpoint. .NOTES Author: Lars Panzerbjørn Creation Date: 2021.08.23 #> [CmdletBinding(PositionalBinding=$False)] param ( [Parameter()][psobject]$AccessToken ) BEGIN{ IF(($AccessToken) -or ($TokenResponse)){ IF($AccessToken){$Headers = @{Authorization = "Bearer $($AccessToken.access_token)"}} IF(!($AccessToken)){$Headers = @{Authorization = "Bearer $($TokenResponse.access_token)"}} } ELSE {THROW "Please provide access token"} $Version = "/beta" $ExpandedURI = "/directory/deleteditems/microsoft.graph.user?`$format=application/json" $URI = $BaseURI + $Version + $ExpandedURI } PROCESS{ $Result = Invoke-RestMethod -Uri $URI -Headers $Headers $Resources = $Result.value IF(!([string]::IsNullOrEmpty($Result.'@odata.nextLink'))){ $Page = 1 DO{ Write-Verbose "Page $($Page)" $URI = $Result.'@odata.nextLink' $Result = Invoke-RestMethod -Uri $URI -Headers $Headers $Resources += $Result.value Write-Verbose "There are $($Resources.count) resources" $Page++ } UNTIL ($Result.'@odata.nextLink' -eq $Null) } Write-Verbose "There are $($Resources.count) resources" } END{ Return $Resources } } |