### FILE: index.php Authentication Context Lost. Please log in to Microsoft 365."; return; } // Configuration parameters matching architectural defaults $deviceNameFilter = "CON-WIN11"; $syncAgeHoursThreshold = 24; $cutoffTime = time() - ($syncAgeHoursThreshold * 3600); // 1. Fetch Managed Devices via Graph Substrate $selectFields = "id,deviceName,userPrincipalName,lastSyncDateTime,complianceState,operatingSystem,osVersion"; $devicesEndpoint = "deviceManagement/managedDevices?\$filter=startsWith(deviceName,'{$deviceNameFilter}')&\$select={$selectFields}"; try { $devicesResult = $ms->graphCall($devicesEndpoint, $accessToken, 'GET'); $devices = $devicesResult['value'] ?? []; } catch (Exception $e) { echo "
Graph API Error: " . htmlspecialchars($e->getMessage()) . "
"; return; } $totalDevices = count($devices); $staleCount = 0; $failedAppsTotalCount = 0; $triageReport = []; foreach ($devices as $device) { $deviceId = $device['id']; $deviceName = $device['deviceName']; $upn = $device['userPrincipalName']; $compliance = $device['complianceState']; $lastSyncStr = $device['lastSyncDateTime']; $lastSyncTime = strtotime($lastSyncStr); $isStale = $lastSyncTime < $cutoffTime; if ($isStale) { $staleCount++; } $failedApps = []; // 2. Probe Win32 App Enrollment Engine Failures for lagging or non-compliant machines if ($isStale || $compliance !== 'compliant') { $appStatusEndpoint = "deviceManagement/managedDevices('{$deviceId}')/deviceInstallStates?\$filter=installState eq 'failed'"; try { $appResponse = $ms->graphCall($appStatusEndpoint, $accessToken, 'GET'); $appStates = $appResponse['value'] ?? []; foreach ($appStates as $state) { $failedApps[] = $state['appName'] . " [Code: " . ($state['errorCode'] ?? 'Unknown') . "]"; $failedAppsTotalCount++; } } catch (Exception $e) { // Gracefully catch secondary queries to prevent dashboard halt $failedApps[] = "Query Failed: " . $e->getMessage(); } } $triageReport[] = [ 'id' => $deviceId, 'name' => $deviceName, 'upn' => $upn, 'compliance' => $compliance, 'lastSync' => $lastSyncStr, 'stale' => $isStale, 'failedApps' => $failedApps ]; } $stalePercentage = $totalDevices > 0 ? round(($staleCount / $totalDevices) * 100) : 0; ?>
24h)", $staleCount, "{$stalePercentage}% of monitored fleet", $staleCount > 0 ? 'down' : 'up', "⏰", $stalePercentage); ?>
0 ? 'down' : 'up', "⚠️"); ?>
Dual-Channel Endpoint Diagnostic Triage
Real-time Telemetry
Device Name Primary User (UPN) Compliance State Last Sync Timestamp IME App Status Actions
No devices found matching current filters.
No Failures