Private/Confirm-CheckIDPasswordAgentRequest.ps1
function Confirm-CheckIDPasswordAgentRequest { [CmdletBinding()] Param( [Parameter(Mandatory = $true)] [ValidateSet("Success", "Error")] $Status, [Parameter(Mandatory = $false)] $Message, [Parameter(Mandatory = $true, ValueFromPipeline = $true)] $Request ) Process { if(!$Script:Hostname) { Write-Error -Message "Hostname is not set. Please run Connect-CheckIDPasswordAgent first." return } Write-EventLog -LogName "Application" -Source "CheckIDPasswordAgent" -EventId 1105 -EntryType Information -Message "Confirming request for user $($Request.userPrincipalName) with ID $($Request.id) - status: $Status" -ErrorAction Continue Write-Verbose "Confirming request for user $($Request.userPrincipalName) with ID $($Request.id) - status: $Status" $Body = @{ "clientConnectionId" = $Request.clientConnectionId "userPrincipalName" = $Request.userPrincipalName "status" = $Status "message" = $Message ?? ($Status -eq "Success" ? "Password updated successfully" : "Error resetting password") } try { Invoke-RestMethod -Uri "https://$($Script:Hostname)/checkid/beta/password-request/id/$($Request.id)" -Method Patch -Headers (Get-EntraIDAccessTokenHeader) -Body ($Body | ConvertTo-Json) -ContentType "application/json" } catch { Write-EventLog -LogName "Application" -Source "CheckIDPasswordAgent" -EventId 1205 -EntryType Error -Message "Failed to confirm request for ID $($Request.id): $_" -ErrorAction Continue Write-Error -Message "Failed to confirm request: $_" } } } |