Skip to content

Commit e3931e6

Browse files
ExecDevicePasscodeAction
1 parent 451c606 commit e3931e6

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
function Invoke-ExecDevicePasscodeAction {
2+
<#
3+
.FUNCTIONALITY
4+
Entrypoint
5+
.ROLE
6+
Endpoint.MEM.ReadWrite
7+
#>
8+
[CmdletBinding()]
9+
param($Request, $TriggerMetadata)
10+
11+
$APIName = $Request.Params.CIPPEndpoint
12+
$Headers = $Request.Headers
13+
14+
$Action = $Request.Body.Action
15+
$DeviceFilter = $Request.Body.GUID
16+
$TenantFilter = $Request.Body.tenantFilter
17+
18+
try {
19+
$GraphResponse = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices('$DeviceFilter')/$($Action)" -type POST -tenantid $TenantFilter -body '{}'
20+
21+
$Result = switch ($Action) {
22+
'resetPasscode' {
23+
if ($GraphResponse.value) {
24+
"Passcode reset successfully. New passcode: $($GraphResponse.value)"
25+
} else {
26+
"Passcode reset queued for device $DeviceFilter. The new passcode will be generated and can be retrieved from the device details."
27+
}
28+
}
29+
'removeDevicePasscode' {
30+
"Successfully removed passcode requirement from device $DeviceFilter"
31+
}
32+
default {
33+
"Successfully queued $Action on device $DeviceFilter"
34+
}
35+
}
36+
37+
Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info
38+
$StatusCode = [HttpStatusCode]::OK
39+
$Results = $Result
40+
41+
} catch {
42+
$ErrorMessage = Get-CippException -Exception $_
43+
$Result = "Failed to execute $Action on device $DeviceFilter : $($ErrorMessage.NormalizedError)"
44+
Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage
45+
$StatusCode = [HttpStatusCode]::InternalServerError
46+
$Results = $Result
47+
}
48+
49+
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
50+
StatusCode = $StatusCode
51+
Body = @{Results = $Results }
52+
})
53+
}

0 commit comments

Comments
 (0)