Citrix DaaS™

Local Host Cache Sichtbarkeitstool

Dieser Artikel beschreibt das Local Host Cache (LHC) Echtzeit-Sichtbarkeitstool, eine PowerShell-basierte Lösung, die Einblick in Citrix Local Host Cache-Umgebungen bietet. Mit diesem Tool können Sie die Integrität des Cloud Connectors überwachen, den gewählten Leader im LHC-Modus identifizieren, den erzwungenen Ausfallmodus steuern und Ereignisprotokolle abfragen, um das LHC-Verhalten zu beheben.

Übersicht

Das Local Host Cache (LHC) Echtzeit-Sichtbarkeitstool ist eine umfassende PowerShell-basierte Lösung, um Einblick in Citrix Local Host Cache-Umgebungen zu geben. Es bietet sowohl eine Befehlszeilenschnittstelle als auch einfache GUIs, die über den Cloud Connector zugänglich sind, damit Sie:

  • Cloud Connectors in einer Zone oder einem Ressourcenstandort ermitteln.
  • Den gewählten Leader im LHC-Modus identifizieren.
  • Den erzwungenen Ausfallmodus für alle Cloud Connectors in der Zone oder am Ressourcenstandort aktivieren oder deaktivieren.
  • Ereignisprotokolle von bestimmten Anbietern und Ereignis-IDs abfragen.
  • Broker-PowerShell-Befehle auf dem gewählten Leader ausführen.

Voraussetzungen

Bevor Sie das Local Host Cache Sichtbarkeitstool bereitstellen und ausführen, stellen Sie sicher, dass Ihre Umgebung die folgenden Systemanforderungen, Berechtigungen und Dateianforderungen erfüllt.

Systemanforderungen

  • Windows Server 2016 oder höher
  • PowerShell 5.1 oder höher
  • Muss auf einem Citrix Cloud Connector™ ausgeführt werden.
  • Erforderliche Dienste:
    • Citrix High Availability Service
    • Citrix ConfigSync Service

Berechtigungen

  • Administratorrechte auf dem lokalen Computer
  • Remote-PowerShell-Ausführungsberechtigungen für alle Cloud Connectors in der Zone
  • Netzwerkkonnektivität zu allen Cloud Connectors

Erforderliche Dateien

  • LHCVisibilityTool.ps1 – Core PowerShell-Modul
  • LHCVisibilityToolGUI.ps1 – GUI-Anwendung
  • HighAvailabilityServiceControl.psm1 – Citrix HA Service Control-Modul

Das GUI-PowerShell-Skript befindet sich unter:

C:\Program Files\Citrix\Broker\Service\LHCVisibilityToolScripts
<!--NeedCopy-->

Erste Schritte

Bevor Sie das Tool ausführen, legen Sie die PowerShell-Ausführungsrichtlinie mithilfe einer der folgenden Optionen fest:

  • Option 1: RemoteSigned (restriktiver):

     Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
     <!--NeedCopy-->
    
  • Option 2: Nur aktuelle Sitzung (temporär):

     Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
     <!--NeedCopy-->
    

Hinweis:

Möglicherweise müssen Sie PowerShell als Administrator ausführen, um die Ausführungsrichtlinie zu ändern. Wenn Sie nur Berechtigungen auf Benutzerebene haben, verwenden Sie -Scope CurrentUser.

Verwenden Sie das Tool über die GUI-Anwendung

Die GUI bietet eine Registerkartenoberfläche zum Ermitteln von Cloud Connectors, Steuern des Ausfallmodus, Abfragen von Ereignisprotokollen und Ausführen von Broker-Befehlen. Nachdem Sie das Tool gestartet haben, wählen Sie eine Aufgabe aus, um zu den Anweisungen zu gelangen:

GUI starten

cd "C:\Program Files\Citrix\Broker\Service\LHCVisibilityToolScripts"
.\LHCVisibilityToolGUI.ps1
<!--NeedCopy-->

Starten der GUI des LHC Visibility Tools

Das Tool verwendet ein Layout mit drei Registerkarten und einer persistenten Statusleiste am unteren Rand.

Das Layout mit drei Registerkarten und die persistente Statusleiste am unteren Rand des Fensters

Die Statusleiste erstreckt sich über den unteren Bereich des Fensters und enthält:

Element Beschreibung
Betriebsstatus (links) Aktueller Vorgang oder „Bereit“
HA-Modus-Status Punktanzeigen pro Connector (maximal 5 angezeigt; „+N weitere“, wenn abgeschnitten); der Hover-Tooltip zeigt die vollständige Liste
Zuletzt aktualisiert Zeitstempel der letzten erfolgreichen Aktualisierung des HA-Status
Protokoll anzeigen Öffnet die Sitzungsprotokolldatei in Notepad

Die Statusleiste verwendet die folgenden Farben, um den HA-Status anzuzeigen:

Zustand Farbe
WorkingNormally Grün
PendingHA Goldgelb
PendingRecovery Orange
InitialHA Rot
ExtendedHA Rot
Unbekannt / Unerreichbar Grau

Cloud Connectors ermitteln und den Leader identifizieren

Klicken Sie auf der Registerkarte Systemstatus & Steuerung auf Leader ermitteln und identifizieren. Das Tool erkennt und zeigt den gewählten Leader unter allen Cloud Connectors in der Zone automatisch an, und zwar mithilfe von:

  • Ereignisprotokollanalyse (Ereignis-ID 3504)
  • Registry-Informationen zu PeerStatus und IsElected
  • Lokale Dienstüberprüfung

Registerkarte „Systemstatus und -steuerung“

Steuerung des erzwungenen Ausfallmodus

Verwenden Sie auf der Registerkarte Systemstatus und -steuerung die Steuerelemente für den Ausfallmodus, um den HA-Modus zonenübergreifend zu verwalten:

  • Erzwungenen Ausfallmodus aktivieren:
    • Zwingt alle Cloud Connectors in der Zone, in den HA-Modus zu wechseln
    • Verwendet den lokalen Hostcache für das Brokering
    • Erfordert die Synchronisierung der LHC-Datenbank
  • Erzwungenen Ausfallmodus deaktivieren:
    • Ermöglicht dem System die Rückkehr zum Normalbetrieb
    • Stellt die Verbindung zur primären Site wieder her, wenn diese verfügbar ist

Warnung:

Diese Aktionen wirken sich auf alle Cloud Connectors in der Zone aus.

Ereignisprotokolle abfragen und verfolgen

Konfigurieren Sie auf der Registerkarte Ereignisprotokollabfrage die folgenden Abfrageparameter:

  • Ziel: Wählen Sie aus:
    • Alle Cloud Connectors
    • Nur gewählter Leader
    • Bestimmter Computer (FQDN eingeben)
  • Anbietername: Wählen Sie einen benutzerdefinierten Anbieter aus oder geben Sie ihn ein:
    • Citrix High Availability Service
    • Citrix ConfigSync Service
    • Citrix Broker Service
  • Ereignis-IDs: Kommagetrennte Liste (zum Beispiel 3502,3503,3506)
  • Zeitbereich: Optional nach Start- und Endzeit filtern
  • Max. Ereignisse: Maximale Anzahl der pro Computer abzurufenden Ereignisse (Standard: 100)

Verwenden Sie die folgenden Schaltflächen, um mit Ereignissen zu arbeiten:

  • Ereignisse abfragen: Fragt die Ereignisprotokolle mithilfe der konfigurierten Abfrageparameter ab.
  • Vergangene HA-Ereignisse: Findet LHC-Anfangs- und Endgrenzen (Ereignisse 3502, 3503, 3508) aus den konfigurierten Abfrageparametern und zeigt das zusammenfassende Endereignis an, um einen Überblick zu geben.
  • Ereignisse löschen: Löscht die Ereignisliste, das Detailfenster und den Tracking-Status.
  • Bericht exportieren: Erstellt Statistiken aus den abgefragten Ereignissen in der GUI und speichert sie als Textdatei. (Verwendet die Ausgabe der Schaltfläche Ereignisstatistiken anzeigen.)

Registerkarte „Ereignisprotokollabfrage“

Die Live-Verfolgung verhält sich wie folgt:

  • Die Live-Verfolgung überwacht alle 120 Sekunden neue Zusammenfassungsereignisse, während LHC aktiv ist.
  • Wenn die Live-Verfolgung beginnt, bestimmt sie die Startzeit für den LHC-Modus durch Referenzierung von Ereignis 3502 und listet alle Ereignisse auf, die seit dem Start aufgetreten sind.
  • Die Live-Verfolgung kann manuell oder automatisch beendet werden, wenn der LHC-Modus abgeschlossen ist.

Der untere Abschnitt bietet zwei Hauptansichten:

  • Linker Bereich:
    • Ereignisse werden chronologisch mit wichtigen Details (Ereignisnummer, Zeit, ID, Typ) aufgelistet.
    • Jedes Ereignis wird visuell durch Farbe basierend auf seinem Typ unterschieden, gemäß der Ereignis-ID-Referenz.
    • Die Auswahl eines Ereignisses zeigt weitere Informationen dazu an.
  • Rechter Bereich: Zwei Anzeigeoptionen ermöglichen das Umschalten zwischen statistischen Zusammenfassungen und detaillierten Informationen für das ausgewählte Ereignis:
    • Ereignisdetails anzeigen: Umfassende Details für das ausgewählte Ereignis.
    • Ereignisstatistiken anzeigen: Statistiken, die HA-Modus-Ereignisse zusammenfassen, einschließlich tabellarischer Metriken und ASCII-Balkendiagrammen aus Zusammenfassungsereignissen (3507).

Die folgende Abbildung zeigt die Ereignisdetailansicht:

Ansicht der Ereignisdetails

Die folgende Abbildung zeigt die Ansicht der Ereignisstatistiken:

Ansicht der Ereignisstatistiken

Referenz: HA- und ConfigSync-Ereignis-IDs

Die folgenden Abschnitte listen gängige Ereignis-IDs nach Anbieter auf.

Citrix High Availability Service:

Ereignis-ID Beschreibung
3502 HA-Modus aktiviert (gewählter Broker)
3503 HA-Modus beendet (normaler Betrieb wieder aufgenommen)
3506 HA-Modus aktiviert (nicht gewählter Broker)
3507 Periodische HA-Modus-Zusammenfassung (gewählter Broker)
3508 Ende der HA-Modus-Zusammenfassung (gewählter Broker)

Citrix ConfigSync-Dienst:

Ereignis-ID Beschreibung
503 Synchronisierungsprozess gestartet
504 Synchronisierung erfolgreich abgeschlossen
505 Synchronisierung fehlgeschlagen
507 Synchronisierung aufgrund des HA-Modus abgebrochen
510 Keine Konfigurationsdaten empfangen
517 Problem bei der Kommunikation mit dem primären Broker
518 ConfigSync abgebrochen (HA-Dienst wird nicht ausgeführt)

Broker-Befehle ausführen

Auf der Registerkarte Broker-Befehle sind die vordefinierten Befehle:

  • Get-BrokerMachine: VDA-/Maschineninformationen abrufen
  • Get-BrokerSession: Aktive Sitzungen abrufen
  • Get-BrokerDesktopGroup: Bereitstellungsgruppen abrufen
  • Get-BrokerCatalog: Maschinenkataloge abrufen
  • Get-BrokerApplication: Veröffentlichte Anwendungen abrufen

Registerkarte Broker-Befehle

Tipp:

Verwenden Sie das Filtertextfeld, um gleichzeitig in allen Zeichenfolgenspalten nach einem bestimmten Element in den Ergebnissen zu suchen.

So führen Sie einen benutzerdefinierten Befehl aus:

  1. Geben Sie einen Befehl ein, zum Beispiel Get-BrokerMachine -MaxRecordCount 2.
  2. Geben Sie optional die zurückzugebenden Eigenschaften an (durch Kommas getrennt).
  3. Klicken Sie auf Ausführen.

Benutzerdefinierter Befehl

Hinweis:

Broker-Befehle liefern aktuelle Informationen aus der LHC-Datenbank, wenn:

  • Das System sich im LHC-Modus befindet.
  • Ein gewählter Leader identifiziert wurde.
  • Die LHC-Datenbank verfügbar ist.

Sitzungsprotokolle anzeigen

Um das aktuelle Sitzungsprotokoll zu öffnen, klicken Sie in der Statusleiste auf Protokoll anzeigen. Das Protokoll wird in Notepad geöffnet.

Jede Sitzung erstellt eine Protokolldatei unter %TEMP%\LHCVisibilityTool_<yyyyMMdd_HHmmss>.log. Nachrichten werden auch farbcodiert an die Hostkonsole geschrieben.

Tool über die Befehlszeile verwenden

Zusätzlich zur GUI können Sie das Tool direkt über PowerShell ausführen. Nachdem Sie das Modul importiert haben, verwenden Sie die folgenden Befehle, um jede Aufgabe auszuführen. Wählen Sie eine Aufgabe aus, um zu ihrem Befehl zu gelangen:

Befehlszeilentool starten

cd "C:\Program Files\Citrix\Broker\Service\LHCVisibilityToolScripts"
. .\LHCVisibilityTool.ps1
<!--NeedCopy-->

Cloud Connectors ermitteln

$connectors = Get-CloudConnectorsInZone
$connectors | ForEach-Object { Write-Host $_ }
<!--NeedCopy-->

Gewählten Leader identifizieren

$leader = Get-ElectedLeader
Write-Host "Elected Leader: $leader"
<!--NeedCopy-->

Ausfallstatus abrufen

$states = Get-OutageState
foreach ($connector in $states.Keys) {
    Write-Host "$connector : $($states[$connector].State)"
}
<!--NeedCopy-->

Ereignisprotokolle abfragen

Alle Cloud Connectors nach HA-Ereignissen abfragen:

$results = Get-LHCEventLogs -EventID @(3502, 3503, 3506) `
    -ProviderName "Citrix High Availability Service" `
    -StartTime (Get-Date).AddDays(-7) `
    -EndTime (Get-Date) `
    -MaxEvents 100

# Display results
foreach ($computer in $results.Keys) {
    Write-Host "`n=== $computer ==="
    if ($results[$computer].Success) {
        $results[$computer].Events | Format-Table TimeCreated, Id, Message -AutoSize
    } else {
        Write-Host "ERROR: $($results[$computer].Error)" -ForegroundColor Red
    }
}
<!--NeedCopy-->

Nur den gewählten Leader abfragen:

$results = Get-LHCEventLogs -ComputerName "ElectedLeader" `
    -EventID @(3507) `
    -ProviderName "Citrix High Availability Service" `
    -MaxEvents 50
<!--NeedCopy-->

Einen bestimmten Computer abfragen:

$results = Get-LHCEventLogs -ComputerName "CC-01.domain.com" `
    -EventID @(503, 504, 505) `
    -ProviderName "Citrix ConfigSync Service"
<!--NeedCopy-->

Broker-Befehle ausführen

Alle Maschinen abrufen:

$machines = Invoke-BrokerCommand -Command "Get-BrokerMachine" `
    -Properties @("MachineName", "RegistrationState", "SessionCount")
$machines | Format-Table -AutoSize
<!--NeedCopy-->

Aktive Sitzungen abrufen:

$sessions = Invoke-BrokerCommand -Command "Get-BrokerSession" `
    -Properties @("UserName", "MachineName", "SessionState")
$sessions | Format-Table -AutoSize
<!--NeedCopy-->

Einen benutzerdefinierten Befehl mit Parametern ausführen:

$params = @{
    MaxRecordCount = 10
}
$results = Invoke-BrokerCommand -Command "Get-BrokerMachine" `
    -Parameters $params `
    -Properties @("MachineName", "DesktopGroupName")
<!--NeedCopy-->

Ausfallmodus steuern

Erzwungenen Ausfallmodus auf allen Cloud Connectors aktivieren:

$results = Set-LHCOutageMode -Enable

# Check results
foreach ($connector in $results.Keys) {
    $status = if ($results[$connector].Success) { "SUCCESS" } else { "FAILED" }
    Write-Host "$connector : $status"
    if (-not $results[$connector].Success) {
        Write-Host "  Error: $($results[$connector].Error)" -ForegroundColor Red
    }
}
<!--NeedCopy-->

Erzwungenen Ausfallmodus deaktivieren:

$results = Set-LHCOutageMode

# Check results
foreach ($connector in $results.Keys) {
    $status = if ($results[$connector].Success) { "SUCCESS" } else { "FAILED" }
    Write-Host "$connector : $status"
}
<!--NeedCopy-->

Problembehandlung

Um Probleme mit dem Tool zu beheben, gehen Sie wie folgt vor:

  1. Überprüfen Sie das Anwendungsereignisprotokoll auf detaillierte Fehlermeldungen.
  2. Stellen Sie sicher, dass alle Voraussetzungen erfüllt sind.
  3. Überprüfen Sie die häufigen Probleme in der folgenden Tabelle und die Best Practices, die später in diesem Artikel beschrieben werden.
  4. Siehe Local Host Cache und das technische Dokument Avoid Common Misconfigurations that Can Negatively Impact DaaS Resiliency.

Die folgende Tabelle listet häufige Probleme auf, die bei der Verwendung des Tools auftreten können, sowie deren empfohlene Lösungen.

Problem Lösung
Keine Cloud Connectors gefunden

  1. Stellen Sie sicher, dass Sie auf einem Cloud Connector ausgeführt werden.
  2. Überprüfen Sie mit Get-Service CitrixHighAvailabilityService, CitrixConfigSyncService, ob die erforderlichen Dienste ausgeführt werden.
  3. Überprüfen Sie den Registrierungsschlüssel HKLM:\SOFTWARE\Citrix\Broker\Service\State\LHC.
Gewählter Leader kann nicht identifiziert werden
  1. Suchen Sie im Anwendungsprotokoll nach der Ereignis-ID 3502.
  2. Überprüfen Sie die Konnektivität zu allen Cloud Connectors.
Broker-Befehl fehlgeschlagen


  1. Stellen Sie sicher, dass sich das System im HA-Modus befindet.
  2. Überprüfen Sie, ob der gewählte Leader identifiziert wurde.
  3. Überprüfen Sie, ob die LHC-Datenbank synchronisiert ist.
  4. Überprüfen Sie, ob HighAvailabilityServiceControl.psm1 vorhanden ist.
Fehler bei der Remoteausführung

  1. Überprüfen Sie mithilfe von Test-WSMan -ComputerName <CloudConnectorFQDN>, ob WinRM auf allen Cloud Connectors aktiviert ist.
  2. Überprüfen Sie, ob Firewallregeln PowerShell-Remoting zulassen.
  3. Überprüfen Sie, ob Sie Administratorberechtigungen besitzen.
Ereignisprotokollabfrage liefert keine Ergebnisse

  1. Überprüfen Sie, ob die Ereignis-IDs für den ausgewählten Anbieter korrekt sind.
  2. Überprüfen Sie, ob der Zeitbereich die erwarteten Ereignisse umfasst.
Stellen Sie sicher, dass die Größenbeschränkungen des Ereignisprotokolls nicht dazu geführt haben, dass alte Ereignisse überschrieben wurden.

Best Practices

Befolgen Sie diese Best Practices, um das Tool optimal zu nutzen und Ihre Local Host Cache-Umgebung sicher zu betreiben.

Regelmäßige Überwachung

  • Führen Sie Cloud Connectors ermitteln und Gewählten Leader identifizieren regelmäßig aus.
  • Überwachen Sie ConfigSync-Ereignisse (503, 504, 505) auf Synchronisierungsprobleme.

Ereignisprotokollanalyse

  • Fragen Sie die HA-Ereignisse der letzten 7 Tage ab, um Ausfallmuster zu verstehen.
  • Suchen Sie im HA-Modus nach der Ereignis-ID 3507 für detaillierte Statistiken.

Broker-Befehle

  • Nur auf dem gewählten Leader ausführen.
  • Begrenzen Sie die Eigenschaftsauswahl, um die Leistung zu verbessern.
  • Verwenden Sie den Parameter MaxRecordCount für große Umgebungen.

Ausfallmodus

  • Verwenden Sie den erzwungenen Ausfallmodus nur für Tests oder geplante Wartungsarbeiten.
  • Stellen Sie immer sicher, dass die LHC-Datenbank vor der Aktivierung synchronisiert ist.
  • Deaktivieren Sie den erzwungenen Ausfallmodus, sobald die primäre Konnektivität wiederhergestellt ist.

Sicherheit

  • Führen Sie nach Möglichkeit mit Konten mit den geringsten Rechten aus.
  • Verwenden Sie sichere Kanäle für die Remote-Ausführung.
  • Überwachen Sie Änderungen im Ausfallmodus.

Beispiele

Die folgenden Beispiele gehen davon aus, dass Sie einen Ordner unter C:\Reports erstellt haben, um die Ausgabe zu speichern.

Beispiel 1: Täglicher HA-Modus-Bericht

# Import module
. "C:\Program Files\Citrix\Broker\Service\LHCVisibilityToolScripts\LHCVisibilityTool.ps1"

# Discover environment
$connectors = Get-CloudConnectorsInZone
Write-Host "Found $($connectors.Count) Cloud Connectors"

# Check HA status
$leader = Get-ElectedLeader
if ($leader) {
    Write-Host "System is in HA mode. Elected leader: $leader"

    # Get HA summary events from elected leader
    $events = Get-LHCEventLogs -ComputerName "ElectedLeader" `
        -EventID @(3507, 3508) `
        -ProviderName "Citrix High Availability Service" `
        -StartTime (Get-Date).AddHours(-24) `
        -MaxEvents 100

    # Export to file
    $events[$leader].Events | Select-Object TimeCreated, Id, LevelDisplayName, Message | Export-Csv -Path "C:\Reports\HA-Status-$(Get-Date -Format 'yyyyMMdd').csv" -NoTypeInformation
} else {
    Write-Host "System is in normal operations mode"
}
<!--NeedCopy-->

Beispiel 2: ConfigSync-Status auf allen Konnektoren prüfen

. "C:\Program Files\Citrix\Broker\Service\LHCVisibilityToolScripts\LHCVisibilityTool.ps1"

$results = Get-LHCEventLogs -ComputerName "All" `
    -EventID @(503, 504, 505) `
    -ProviderName "Citrix ConfigSync Service" `
    -StartTime (Get-Date).AddHours(-6) `
    -MaxEvents 10

foreach ($computer in $results.Keys) {
    $lastEvent = $results[$computer].Events | Sort-Object TimeCreated -Descending | Select-Object -First 1
    $status = switch ($lastEvent.Id) {
        503 { "In Progress" }
        504 { "Success" }
        505 { "Failed" }
    }
    Write-Host "$computer - Last Sync: $($lastEvent.TimeCreated) - Status: $status"
}
<!--NeedCopy-->

Beispiel 3: Sitzungsanzahl im HA-Modus abrufen

. "C:\Program Files\Citrix\Broker\Service\LHCVisibilityToolScripts\LHCVisibilityTool.ps1"

# Ensure we have an elected leader
$leader = Get-ElectedLeader
if ($leader) {
    # Get all sessions
    $sessions = Invoke-BrokerCommand -Command "Get-BrokerSession"
    Write-Host "Total Sessions: $($sessions.Count)"

    # Group by state
    $sessionsByState = $sessions | Group-Object SessionState
    foreach ($group in $sessionsByState) {
        Write-Host "  $($group.Name): $($group.Count)"
    }
} else {
    Write-Host "Not in HA mode - cannot query sessions from LHC"
}
<!--NeedCopy-->

Erweiterte Szenarien

Die folgenden Szenarien kombinieren mehrere Tool-Funktionen in Skripten für komplexere Operationen, wie die Automatisierung von Ausfalltests und den Export historischer HA-Modus-Daten.

Ausfalltests automatisieren

# Enable outage mode
Write-Host "Enabling forced outage mode..."
$enableResults = Set-LHCOutageMode -Enable
$allEnabled = $enableResults.Values | Where-Object { -not $_.Success }
if ($allEnabled) {
    Write-Host "WARNING: Some connectors failed to enable outage mode - aborting test" -ForegroundColor Yellow
    return
}
Start-Sleep -Seconds 30

# Verify elected leader
$leader = Get-ElectedLeader
Write-Host "Elected leader: $leader"

# Test brokering
$machines = Invoke-BrokerCommand -Command "Get-BrokerMachine" -Properties @("MachineName", "RegistrationState")
Write-Host "Retrieved $($machines.Count) machines"

# Disable outage mode
Write-Host "Disabling forced outage mode..."
$disableResults = Set-LHCOutageMode
<!--NeedCopy-->

HA-Modus-Verlauf exportieren

$haEvents = Get-LHCEventLogs -ComputerName "All" `
    -EventID @(3502, 3503) `
    -ProviderName "Citrix High Availability Service" `
    -StartTime (Get-Date).AddDays(-30) `
    -MaxEvents 1000

$report = foreach ($computer in $haEvents.Keys) {
    if (-not $haEvents[$computer].Success) { continue }
    foreach ($event in $haEvents[$computer].Events) {
        [PSCustomObject]@{
            Computer  = $computer
            EventID   = $event.Id
            EventType = if ($event.Id -eq 3502) { "Entered HA Mode" } else { "Exited HA Mode" }
            Time      = $event.TimeCreated
        }
    }
}
$report | Sort-Object Time | Export-Csv -Path "C:\Reports\HA-History.csv" -NoTypeInformation
<!--NeedCopy-->
Local Host Cache Sichtbarkeitstool