# Analyse von chocolatey.log

## Anforderungen

Die folgenden Elemente sind für die Fehlersuche erforderlich oder hilfreich:

* Logdateien, insbesondere `chocolatey.log`.
* Texteditor Ihrer Wahl mit erweiterten Suchfunktionen, empfohlen: Notepad++, Visual Studio Code.
* Paket-ID des fehlgeschlagenen Pakets, z. B. `generic-mozilla-firefox`.
* Zeitstempel der fehlgeschlagenen Installation(en) (nicht חובה, aber hilfreich).

## Struktur der Logdatei

### Einstiegspunkt und Debuginformationen

Um den Einstiegspunkt der Paketinstallation innerhalb des `chocolatey.log` zu finden, verwenden Sie diesen exakten Suchstring (Paket-ID entsprechend anpassen): `generic-mozilla-firefox --version=` (wenn Sie sich bei der Versionszeichenfolge sicher sind, können Sie sie natürlich hinzufügen, sie ist aber nicht zwingend erforderlich)

Auf diese Weise finden Sie den/die Startpunkt(e) des choco-Prozesses für die Installation oder Aktualisierung der angegebenen Paket-ID.

Die vollständige Zeile im Log kann stattdessen etwa so aussehen, wie `upgrade` kann auch  `install` je nach Vorgang lauten:

{% code overflow="wrap" fullWidth="false" %}

```log
2023-08-22 15:05:36,664 [DEBUG] - Command line: "C:\ProgramData\chocolatey\choco.exe" upgrade generic-mozilla-firefox --version=117.0.0.0 --force --yes --ignore-package-exit-codes --timeout=14400 --params="/BlockAddons:1"
```

{% endcode %}

<figure><img src="https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2F3sKmjG2RmTkw8ASm0DuU%2Fchoco-install-entry-point.png?alt=media&#x26;token=3af090ef-6f67-4b41-afcf-42cef588b274" alt=""><figcaption><p>Einstiegspunkt einer choco-Installation innerhalb von chocolatey.log</p></figcaption></figure>

Diese Zeile enthält bereits einige wichtige Informationen, wie die zu installierende Paketversionsnummer sowie die verwendeten Parameter (Paketargumente, die im RealmJoin Portal konfiguriert sind).

Die folgenden Zeilen enthalten viele (nicht relevante) Debug-Informationen, unter anderem wird der vollständige Inhalt von chocolateyInstall.ps1 ausgegeben.\
Innerhalb der Debuginformationen finden Sie die beiden Abschnitte `RJAppDeployToolkit: Input Environment Variables` und `RJAppDeployToolkit: Resulting Variables`. Beide Abschnitte befinden sich direkt nebeneinander und zeigen Variablen und Werte, die vom `RJAppDeployToolkit`

<figure><img src="https://2298793958-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FOct87LKFOgCV8wKnUwAY%2FRJAppDeployToolkit-output.png?alt=media&#x26;token=8ab87662-964c-4465-9822-018b56dacafa" alt=""><figcaption><p>Ausgabe des RJAppDeployToolkit</p></figcaption></figure>

### Installationsprozess

Das eigentliche Paketinstallationsskript beginnt nach folgender Logmeldung:

{% code overflow="wrap" %}

```log
2023-08-22 15:05:47,000 [DEBUG] - Running 'C:\ProgramData\chocolatey\lib\generic-mozilla-firefox\tools\chocolateyInstall.ps1'
```

{% endcode %}

Je nach Paketinstallationsskript und Zustand des Clients wird der erste Schritt üblicherweise eine Prüfung sein, ob die Software bereits installiert ist. Dies geschieht, um festzustellen, ob vor der eigentlichen Installation eine Deinstallation erforderlich ist.\
In den Logs kann dies anhand einer oder mehrerer der folgenden Logmeldungen verfolgt werden:

{% code overflow="wrap" %}

```log
2023-08-22 15:05:47,057 [DEBUG] - Entered function 'Get-RealmjoinRegistryUninstallInfo' with parameters [...]]
```

{% endcode %}

{% code overflow="wrap" %}

```log
2023-08-22 15:05:47,053 [DEBUG] - Entered function 'Uninstall-RealmjoinPackage' with parameters [...]]
```

{% endcode %}

Nachdem die Prüfungen und die möglichen Deinstallationen ausgeführt wurden, beginnt die Hauptinstallation der Anwendung, angezeigt durch die folgende Logmeldung (der Dateiname wird natürlich abweichen):

{% code overflow="wrap" %}

```log
2023-08-22 15:05:47,858 [INFO ] - Starting RealmJoin-Install of Git-2.42.0-64-bit.exe
```

{% endcode %}

Die Installation beginnt üblicherweise mit dem Download der Binärdatei. Beginn und Ende des Downloads werden durch die folgenden Logmeldungen dargestellt:

{% code overflow="wrap" %}

```log
2023-08-22 15:05:48,273 [INFO ] - Downloading generic-git-git from 'https://cdn.realmjoin.com/blobs/generic/generic-git-git/Git-2.42.0-64-bit.exe'

[...]

2023-08-22 15:05:57,293 [INFO ] - Download of Git-2.42.0-64-bit.exe (58.35 MB) completed.
```

{% endcode %}

Nach Abschluss des Downloads prüft chocolatey den Hash der heruntergeladenen Datei und vergleicht ihn mit dem erwarteten Wert. Wenn der Hash übereinstimmt, wird die Setup-Datei schließlich ausgeführt.\
Die Logmeldung für die Ausführung finden Sie an folgender Logmeldung:

{% code overflow="wrap" %}

```log
2023-08-22 15:06:00,743 [DEBUG] - Elevating Permissions and running ["C:\WINDOWS\TEMP\chocolatey\generic-git-git\2.42.0.0\Git-2.42.0-64-bit.exe" /verysilent /norestart /log="C:\WINDOWS\Logs\RealmJoin\Packages\generic-git-git\2023-08-22_15-05-47.916_generic-git-git_2.42.0.0_install_Git-2.42.0-64-bit.exe.log" ]. Dies kann je nach Anweisungen eine Weile dauern.
```

{% endcode %}

Diese Meldung enthält den Dateipfad zur Setup-Datei sowie die vollständige Befehlszeile, einschließlich aller verwendeten (Silent-)Parameter zum Starten der Setup-Datei. Sie hilft auch dabei, den relevanten Pfad zur Setup-Logdatei zu finden, falls dieser von der Setup-Datei bereitgestellt und im Paketskript enthalten ist.

Nachdem der Prozess beendet wurde, wird eine weitere Logmeldung geschrieben, die erneut den vollständigen Dateipfad und alle Parameter enthält. Zusätzlich enthält diese Meldung auch den vom Setup-Prozess zurückgegebenen Exit-Code, den wichtigsten Indikator für eine erfolgreiche oder fehlgeschlagene Installation:

{% code overflow="wrap" %}

```log
2023-08-22 15:06:52,321 [DEBUG] - Command ["C:\WINDOWS\TEMP\chocolatey\generic-git-git\2.42.0.0\Git-2.42.0-64-bit.exe" /verysilent /norestart /log="C:\WINDOWS\Logs\RealmJoin\Packages\generic-git-git\2023-08-22_15-05-47.916_generic-git-git_2.42.0.0_install_Git-2.42.0-64-bit.exe.log" ] exited with '0'.
```

{% endcode %}

Je nach Paket kann der Paketinstallation nun ein sogenannter „postActions“-Schritt folgen, der beispielsweise einige Registrierungseinstellungen, das Entfernen von Desktop-Symbolen oder sogar das Ausführen einer weiteren Setup-Datei umfassen kann (beginnend erneut mit dem Download dieser Datei). Der postActions-Teil wird in der Logdatei durch die folgenden Beginn- und Endmeldungen angezeigt:

{% code overflow="wrap" %}

```log
2023-09-13 16:49:18,550 7224 [INFO ] - Running postActions...
2023-09-13 16:49:20,894 7224 [INFO ] - postActions finished.
```

{% endcode %}

Der chocolatey-Installationsprozess wird mit der folgenden Logmeldung abgeschlossen (die Formulierung kann je nach install / upgrade abweichen):

{% code overflow="wrap" %}

```log
2023-09-13 17:01:39,433 8336 [INFO ] - The install of generic-google-chrome was successful.
```

{% endcode %}
