XFA mit jedem anderen System vorinstallieren
XFA ist nicht an ein bestimmtes Verwaltungssystem gebunden. Alles, was ein Paket installieren und entweder eine MSI-Eigenschaft übergeben oder einen Befehl als angemeldeter Benutzer ausführen kann, kann es verteilen. Das Vorinstallieren ist eine Enterprise-Funktion.
Windows
Übergeben Sie das Enrollment-Token als MSI-Eigenschaft:
msiexec /i XFA.msi /qn ENROLLMENT_TOKEN=<your-enrollment-token>
ENROLLMENT_TOKEN ist eine öffentliche Eigenschaft, sie funktioniert also aus jedem Werkzeug heraus, das msiexec ausführt, und sie ändert die Signatur des Installationspakets nicht. Fügen Sie EMAIL=person@example.com nur hinzu, wenn Sie auf einem einzelnen Gerät installieren: Es setzt genau eine Adresse, in einem Rollout über die Flotte würde sich also jedes Gerät als diese Person verbinden. Über eine Flotte hinweg liest XFA die Adresse pro Gerät aus Active Directory. Installieren Sie für den angemeldeten Benutzer; XFA ist eine Anwendung pro Benutzer.
Die Installation schlägt fehl, wenn das Verbinden fehlschlägt. Über msiexec ist das ein allgemeiner Installationsfehler, nicht der eigene Code von XFA: Der Grund (2 für ein abgelehntes Token, 3 wenn XFA nicht erreichbar war) steht in %TEMP%\xfa\xfa-enrollment.log. Installieren Sie zuerst und verbinden Sie getrennt davon (siehe unten), um den Code direkt zurückzubekommen.
macOS
Installieren Sie XFA.pkg für den angemeldeten Benutzer und liefern Sie das Token auf einem von zwei Wegen:
- ein Konfigurationsprofil mit der Preference-Domain
com.xfa.desktopund dem SchlüsselEnrollmentToken; oder - die Datei
/Library/Application Support/XFA/enrollment-token, die nur das Token enthält. XFA liest sie nur, wenn sie root gehört und für niemanden sonst beschreibbar ist (Modus 644), und genau so schreibt eine als root laufende Policy sie ohnehin. Diese Datei entscheidet, welcher Organisation der Mac beitritt, eine Datei, die diese Prüfungen nicht besteht, wird also ignoriert.
XFA liest beim Start, was vorhanden ist, und verbindet den angemeldeten Benutzer. Das Profil hat Vorrang.
Schlägt das Verbinden fehl, wird der Grund auf dem Mac nach /tmp/xfa/xfa-enrollment.log geschrieben.
Zuerst installieren, danach getrennt verbinden
Installiert Ihr Werkzeug Pakete und führt Befehle als getrennte Schritte aus, verbinden Sie mit:
xfa enroll --token <your-enrollment-token>
Führen Sie das als angemeldeter Benutzer aus, denn die Zugangsdaten liegen im Schlüsselbund oder im Credential Manager dieses Benutzers. Fügen Sie --email <address> hinzu, wenn die eigene Adresse des Kontos nicht die richtige ist.
Ein erneuter Aufruf ist unbedenklich und kostet keine Anfrage: XFA erkennt das Token und prüft die Affiliation lokal.
xfa liegt unter Windows in %LOCALAPPDATA%\XFA\xfa-backend.exe und unter macOS in /Applications/XFA.app/Contents/MacOS/xfa.
Unter Windows auf XFA warten
XFA ist eine Fensteranwendung, auf dem Bildschirm des Benutzers erscheint also keine Eingabeaufforderung, während es arbeitet. Deshalb wartet eine Shell nicht darauf, bekommt den Exit-Code nie zu sehen und hat keine Konsole zum Auslesen. Starten Sie es und warten Sie:
$run = Start-Process "$env:LOCALAPPDATA\XFA\xfa-backend.exe" -Wait -PassThru `
-ArgumentList 'enroll', '--token', '<your-enrollment-token>'
$run.ExitCode
Führen Sie es stattdessen direkt aus, kehrt es sofort zurück, ohne Ausgabe und ohne Exit-Code, was sich wie Erfolg liest, egal was passiert ist. Alles, was sich am Ergebnis entscheidet (ein Rollout-Schritt, eine Erkennungsregel, eine Compliance-Prüfung), muss auf den Prozess warten.
Der Grund für einen Fehlschlag wird nach %TEMP%\xfa\xfa-enrollment.log geschrieben, mit dem Befehl und der Uhrzeit bei jedem Lauf. Das Enrollment-Token wird dort nie hineingeschrieben.
Das Ergebnis prüfen
xfa enrollment-status
Exit-Code 0 heißt, das Gerät ist verbunden, 10 heißt, es ist es nicht. Fügen Sie --organization-id <id> hinzu, um nach einer bestimmten Organisation zu fragen. Es liest die lokalen Zugangsdaten des Geräts, braucht also kein Netzwerk und keine Administratorrechte, was es als Erkennungs- oder Compliance-Prüfung brauchbar macht.
Führen Sie es unter Windows genauso aus wie oben. Eine Erkennungsregel, die nicht auf den Prozess wartet, liest den Exit-Code, der davor kam, und meldet eine Compliance, die sie nie gemessen hat.