Get-ADConnectSyncStatus — status synchronizacji ADConnect
🏢 Active Directory POWERSHELLKompleksowy przegląd stanu Azure AD Connect: scheduler, ostatnie uruchomienia, błędy, pending export
Opis
Dashboard statusu Azure AD Connect — uruchom na serwerze ADConnect lub zdalnie. Wyświetla: - Ustawienia Schedulera: interwał, staging mode, następna synchronizacja - Ostatnie 10 uruchomień z wynikami i czasem trwania - Błędy synchronizacji z ostatnich przebiegów - Lista konektorów z liczbą obiektów w Connector Space - Pending Export: liczba obiektów czekających na Add/Update/Delete Wymagania: moduł ADSync, uruchomienie na serwerze ADConnect. Zdalnie: Invoke-Command -ComputerName ADConnect01 -FilePath Get-ADConnectSyncStatus.ps1
🕒 2026-04-13
📦 Źródło: own
skrypt.ps1
#Requires -Modules ADSync
<#
.SYNOPSIS
Sprawdza status synchronizacji Azure AD Connect — ostatni cykl, błędy, połączenia.
.DESCRIPTION
Wyświetla kompletny obraz stanu ADConnect:
- Status ostatniej synchronizacji (delta i full)
- Błędy synchronizacji
- Status connectorów (AD i AAD)
- Obiekty w kolejce/oczekujące
- Scheduler settings
Uruchom lokalnie na serwerze ADConnect lub zdalnie przez:
Invoke-Command -ComputerName ADConnectServer -ScriptBlock { ... }
.EXAMPLE
.\Get-ADConnectSyncStatus.ps1
#>
Import-Module ADSync -ErrorAction Stop
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host " AZURE AD CONNECT — STATUS" -ForegroundColor Cyan
Write-Host " $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -ForegroundColor Cyan
Write-Host "========================================`n" -ForegroundColor Cyan
# --- Scheduler ---
$sched = Get-ADSyncScheduler
Write-Host "--- SCHEDULER ---" -ForegroundColor Yellow
[PSCustomObject]@{
'Sync aktywny' = $sched.SyncCycleEnabled
'Staging Mode' = $sched.StagingModeEnabled
'Interwał delta (min)' = [math]::Round($sched.CustomizedSyncCycleInterval.TotalMinutes)
'Następna zaplanowana sync' = $sched.NextSyncCyclePolicyType
'Allowed sync policy' = $sched.AllowedSyncPolicyType
} | Format-List
# --- Ostatnia synchronizacja ---
$lastSync = Get-ADSyncRunProfileResult -NumberRequested 10
Write-Host "--- OSTATNIE URUCHOMIENIA ---" -ForegroundColor Yellow
$lastSync | Select-Object -First 10 |
Select-Object ConnectorName, RunProfileName,
@{N='Start'; E={ $_.StartDate.ToString("yyyy-MM-dd HH:mm:ss") }},
@{N='Koniec'; E={ $_.EndDate?.ToString("HH:mm:ss") }},
@{N='Czas(s)'; E={ [math]::Round(($_.EndDate - $_.StartDate).TotalSeconds) }},
Result |
Format-Table -AutoSize
# --- Błędy synchronizacji ---
Write-Host "--- BŁĘDY SYNCHRONIZACJI ---" -ForegroundColor Yellow
$errors = Get-ADSyncRunProfileResult -NumberRequested 1 |
Where-Object { $_.Result -ne "success" -and $_.Result -ne "stopped-server-shutdown" }
if ($errors) {
Write-Host "UWAGA: Wykryto błędy synchronizacji!" -ForegroundColor Red
$errors | Format-Table ConnectorName, RunProfileName, Result, StartDate -AutoSize
} else {
Write-Host " Brak błędów w ostatnich uruchomieniach." -ForegroundColor Green
}
# --- Connectors ---
Write-Host "`n--- CONNEKTORY ---" -ForegroundColor Yellow
Get-ADSyncConnector | Select-Object Name, Type, State,
@{N='ObiektówCS'; E={ (Get-ADSyncConnectorStatistics -ConnectorName $_.Name).ConnectorSpaceObjects }} |
Format-Table -AutoSize
# --- Obiekty oczekujące na sync ---
Write-Host "--- OBIEKTY OCZEKUJĄCE (Pending Export) ---" -ForegroundColor Yellow
Get-ADSyncConnector | ForEach-Object {
$stats = Get-ADSyncConnectorStatistics -ConnectorName $_.Name
[PSCustomObject]@{
Konektor = $_.Name
'Pending Add' = $stats.PendingExportAdd
'Pending Update' = $stats.PendingExportUpdate
'Pending Delete' = $stats.PendingExportDelete
}
} | Format-Table -AutoSize
Write-Host "========================================`n" -ForegroundColor Cyan