Mettre en œuvre des procédures de surveillance et de dépannage pour garantir que la collecte des journaux de diagnostic fonctionne de manière fiable sur vos appareils gérés.
Configurez la surveillance en créant un script PowerShell pour vérifier l'état de la collecte sur plusieurs appareils. Enregistrez sous MonitorDiagnosticCollection.ps1 :
# Surveiller la collecte de diagnostics sur les appareils
$TenantId = "your-tenant-id"
$ClientId = "your-app-id"
$ClientSecret = "your-client-secret"
# Obtenir le jeton d'accès
$TokenBody = @{
Grant_Type = "client_credentials"
Scope = "https://graph.microsoft.com/.default"
Client_Id = $ClientId
Client_Secret = $ClientSecret
}
$TokenResponse = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" -Method POST -Body $TokenBody
$Headers = @{Authorization = "Bearer $($TokenResponse.access_token)"}
# Obtenir les demandes de collecte de diagnostics
$DiagnosticRequests = Invoke-RestMethod -Uri "https://graph.microsoft.com/beta/deviceManagement/deviceLogCollectionRequests" -Headers $Headers
# Analyser les résultats
$DiagnosticRequests.value | ForEach-Object {
Write-Output "Appareil : $($_.deviceName)"
Write-Output "Statut : $($_.status)"
Write-Output "Demandé : $($_.requestedDateTime)"
Write-Output "Taille : $($_.sizeInKB) KB"
Write-Output "---"
}
Scénarios de dépannage courants et solutions :
Avertissement : Si WNS est bloqué par le pare-feu, la collecte de diagnostics échouera. Assurez-vous que ces URL sont accessibles : *.wns.windows.com, *.notify.windows.com, et *.push.apple.com pour les appareils iOS.
Problème 1 : Collecte bloquée en statut "En attente"
# Forcer la synchronisation de l'appareil pour déclencher la collecte
# Exécuter sur l'appareil affecté ou via Intune remote PowerShell
Get-ScheduledTask -TaskName "PushLaunch" | Start-ScheduledTask
Start-Process "C:\Windows\System32\deviceenroller.exe" -ArgumentList "/c /AutoEnrollMDM"
# Vérifier la connectivité WNS
Test-NetConnection -ComputerName "client.wns.windows.com" -Port 443
Problème 2 : Journaux personnalisés non inclus
# Vérifier le placement des journaux personnalisés
$LogPath = "C:\ProgramData\Microsoft\IntuneManagementExtension\Logs"
Get-ChildItem $LogPath -Filter "*.log" | Select-Object Name, Length, LastWriteTime
# Vérifier les sous-répertoires (non pris en charge)
Get-ChildItem $LogPath -Directory | ForEach-Object {
Write-Warning "Sous-répertoire trouvé : $($_.Name) - Les journaux personnalisés dans les sous-répertoires ne sont pas collectés"
}
Problème 3 : Fichiers journaux volumineux causant des délais d'attente
# Vérifier la taille des fichiers journaux et compresser si nécessaire
Get-ChildItem "C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\*.log" |
Where-Object {$_.Length -gt 50MB} |
ForEach-Object {
Write-Warning "Fichier journal volumineux : $($_.Name) - $([math]::Round($_.Length/1MB,2)) MB"
# Optionnellement compresser ou tronquer les fichiers volumineux
$Content = Get-Content $_.FullName -Tail 10000
$Content | Out-File "$($_.FullName).truncated" -Encoding UTF8
}
Vérification : Exécutez le script de surveillance chaque semaine et vérifiez que les collectes de diagnostics se terminent en moins de 20 minutes. Les collectes échouées doivent être examinées en utilisant les étapes de dépannage ci-dessus.