UAM: Technisches Referenzhandbuch für Shell-Apps

Anmerkung

Ausführungskontext: Alle Skripte werden im Auftrag des lokalen Systemkontos ausgeführt.

Detect script

Detect script wird je nach erforderlicher Aktion und tatsächlichem Installationsstatus ein- bis zweimal ausgeführt. Es endet mit einem der folgenden Ergebnisse:

Rückgabetyp

  • $true: Anwendung ist installiert (nur Einzelversionsmodus).

  • $false: Anwendung ist nicht installiert (nur Einzelversionsmodus).

  • string: Erkannter Versionsname.

  • $null: Anwendung ist nicht installiert.

Installationsskript

Dies wird nur ausgeführt, wenn die Zielaktion Install ist und der Detect script $false, $null oder einen Versionsnamen, der nicht der Zielversion entspricht, zurückgibt. Weitere Informationen finden Sie unter Flow Examples.

Rückgabetyp:

  • void: Die Installation wurde erfolgreich abgeschlossen. Der endgültige Compliance-Status wird durch eine zweite Ausführung des Detect script neu bewertet.

Anmerkung

  • Das Installationsskript kann bei Bedarf so implementiert werden, dass es sich wie Upgrade oder Downgrade verhält. Um dies zu erreichen, stellt Nerdio Manager die Variablen $Context.TargetVersion und $Context.DetectedVersion bereit. Weitere Informationen finden Sie unter $Context Object Specs.

  • Das Installationsskript kann leer gelassen werden, wenn für alle Versionen ein eigenes Override install konfiguriert ist.

Deinstallationsskript

Dies wird nur ausgeführt, wenn die Zielaktion Uninstall ist und Detect script $true oder einen String-Versionsnamen zurückgibt. Weitere Informationen finden Sie unter Flow Examples.

Rückgabetyp

  • void: Die Deinstallation wurde erfolgreich abgeschlossen. Der endgültige Compliance-Status wird durch eine zweite Ausführung des Detect script neu bewertet.

$Context-Objektspezifikationen

ShellAppVersion Object Specs

Eigenschaften

  • Name: string: Versionsname.

Dateianhang

Jeder Shell-App-Version können beliebige Binärdaten angehängt werden, und jedes Skript hat die Möglichkeit, diese Binärdaten über den Funktionsaufruf $Context.GetAttachedBinary() abzurufen.

Der Aufruf dieser Funktion bewirkt Folgendes:

  • Lädt die Datei herunter, falls sie noch nicht heruntergeladen wurde.

  • Speichert die heruntergeladene Datei im internen Cache.

  • Kopiert die Datei in einen temporären Ordner.

  • Gibt den absoluten Pfad der Datei in einem temporären Ordner zurück.

Die Funktion empfängt den optionalen Parameter version-Name, um die an die spezifische Version angehängte Datei bereitzustellen. Nerdio Manager versucht dann, basierend auf dem Kontext die am besten geeignete Datei zu finden. Es gibt vier mögliche Ergebnisse:

  • Wenn die Shell-App eine einzelne Version hat, wählt sie diese Datei aus.

  • Wenn die Aktion Install ist, wählt sie die Datei ihrer Zielversion aus.

  • Wenn das Detect script einen korrekten Versionsnamen zurückgegeben hat, wählt es diese Datei aus.

  • Löst einen Fehler aus.

Wichtige Hinweise zum Multi-Version-Modus

  • Das Detect script muss einen korrekten Versionsnamen zurückgeben, wenn einer auf dem Host erkannt wird, oder null, wenn keiner erkannt wird. Dies unterscheidet sich vom Single-Version-Modus, der einen booleschen Rückgabewert zulässt (ein einfaches true/false, das angibt, ob die App vorhanden ist oder nicht).

  • Das vom Detect script zurückgegebene Ergebnis ist die ultimative Quelle der Wahrheit, ob die Anwendung installiert ist oder nicht. Und es ist ein Treiber für alle nachfolgenden Ausführungen von Install/Uninstall.

  • Nerdio Manager trifft keine Annahmen und verfolgt keinen internen Status auf dem Host in Bezug auf die Anwendungserkennung (Detect).

  • Der Kunde kann jede beliebige Logik schreiben, die erforderlich ist, um die aktuell installierte Shell-App-Version zu verfolgen (z. B. in der Registry, in einer Datei etc.).

Verfügbarkeit auf der Seite des Unified Catalog

Die Verfügbarkeit der Shell-App im Unified Catalog wird durch ein Public-Kontrollkästchen im Schritt General der entsprechenden Shell-App-Verwaltung gesteuert.

Benutzeroberfläche für die Versionskonfiguration

Hier sind einige Details der Benutzeroberfläche für die Versionsverwaltung, die im Assistentenschritt Versions jeder Shell-App-Verwaltung zu sehen sind.

  • Name: Der Versionsname wird im Format x.x.x.x gespeichert. Dies muss mit der Version identisch sein, die vom Detect script zurückgegeben wird, um einen positiven Wert an alle zugehörigen Installationsrichtlinien zurückzugeben.

  • Unzip (deaktiviert): Dies wird für neue Shell-Apps nicht empfohlen, da diese Option nur im Single-Version-Modus unterstützt wird und sich ihr Verhalten in Zukunft ändern kann.

    Anmerkung

    Diese Option wurde ursprünglich speziell für die Unterstützung des Importierens von SCCM-PowerShell-Anwendungen eingeführt. Wenn diese Option ausgewählt ist, wird Ihre Zip-Datei in einen temporären Ordner extrahiert und der Kontext auf diesen Ordner festgelegt. Daher können Sie die Dateien aus dem Archiv direkt verwenden. Das gleiche Verhalten kann durch die Verwendung der folgenden Kette erreicht werden: $Context.GetAttachedBinary() -> Expand-Archive -> Set-Location.

  • Datei : Hängen Sie eine bestimmte Datei an die aktuelle Version an, die über das Installationsskript mittels $Context.GetAttachedBinary() aufgerufen werden kann.

  • Override install: Dies bietet die Möglichkeit, das globale Installationsskript bei der Installation der aktuellen Version zu überschreiben. Dies kann für einige triviale Versionierungsszenarien praktisch sein.

Parametrisierung

Ab Nerdio Manager v6.1 können Sie jedes Skript mit Werten aus Sicheren Variablen parametrisieren, die unter System > Einstellungen > Nerdio > Sichere Variablen konfiguriert und sicher in das Skript eingebunden werden. Weitere Informationen finden Sie unter Globale Sichere Variablen für Scripted Actions.

Um dieses Feature zu nutzen, fügen Sie einfach den folgenden Standardcode am Anfang Ihres Skripts ein, um Variablenwerte dynamisch als Skriptparameter zu injizieren.

Tipp

[CmdletBinding()]

Param (

[Parameter(Mandatory)]

[string] $SecureVar_MyCustomVar1,

[Parameter(Mandatory)]

[string] $SecureVar_MyCustomVar2

)

Anmerkung

  • Sichere Variablen werden für Intune-Geräte nicht unterstützt und führen zu einem Deployment-Fehler.

  • Der Parametername muss mit SecureVar_ beginnen. Der restliche Name muss einer vorhandenen sicheren Variablen entsprechen (Groß-/Kleinschreibung beachten). Beispiel: Wenn die sichere Variable AdminPassword heißt, muss der Skriptparameter als SecureVar_AdminPassword definiert werden.

  • Sichere Variablen müssen vom Administrator explizit für die Verwendung in Shell-Apps-Skriptparametern zugelassen werden. Stellen Sie sicher, dass Sie die Option Verwendung in Shell-Apps zulassen in der Konfiguration der sicheren Variablen auswählen.

  • Nerdio Manager analysiert das Skript ständig, um eine ordnungsgemäße Konfiguration der Parameter sicherzustellen. Der aktuelle Skriptstatus kann im ausklappbaren Abschnitt Skriptstatus unterhalb jedes Skript-Inhaltseditors eingesehen werden.

Ablaufbeispiele

Einzelversionsmodus

Bei standardmäßigen Einzelversions-Installationen wird zuerst das Erkennungsskript ausgeführt, um zu bestimmen, ob eine Installation erforderlich ist. Wenn die Erkennungsregel „falsch“ zurückgibt (was bedeutet, dass die Anwendung nicht vorhanden ist), wird das Installationsskript ausgeführt. Die Erkennungsregel wird dann erneut ausgeführt. Wenn sie ein zweites Mal „falsch“ zurückgibt, wird die Installation als Fehler gemeldet; wenn sie „wahr“ zurückgibt, wird sie als Erfolg gemeldet.

Tabelle 13.

Konfigurierte Versionen

Konfigurierte Aktion

Erkennung #1 zurückgegeben

Ausgeführtes Skript

Erkennung #2 zurückgegeben

Endgültiger Status

1.0

1.0 installieren

$false

Installieren

$true

Erfolg

1.0

1.0 installieren

$false

Installieren

$false

Fehler

1.0

1.0 installieren

$true

-

Erfolg

1.0

Deinstallieren

$true

Deinstallieren

$false

Erfolg

1.0

Deinstallieren

$true

Deinstallieren

$true

Fehler

1.0

Deinstallieren

$false

-

Erfolg


Multiversionsmodus

Bei Installationen mit mehreren Versionen wird zuerst das Erkennungsskript ausgeführt, um festzustellen, ob eine Installation erforderlich ist. Wenn die Versionserkennungsregel einen Wert zurückgibt, der nicht mit der definierten Zielversion übereinstimmt, wird das Installationsskript ausgeführt. Die Erkennungsregel wird dann erneut ausgeführt. Wenn sie weiterhin nicht die definierte Zielversion zurückgibt, wird die Installation als Fehler gemeldet; wenn sie die definierte Zielversion zurückgibt, wird sie als Erfolg gemeldet.

Tabelle 14.

Konfigurierte Versionen

Konfigurierte Aktion

Erkennung #1 zurückgegeben

Ausgeführtes Skript

Erkennung #2 zurückgegeben

Endgültiger Status

1.0, 2.0

1.0 installieren

$null

Installieren

1.0

Erfolg

1.0, 2.0

1.0 installieren

$null

Installieren

$null

Fehler

1.0, 2.0

1.0 installieren

1234.0

-

-

Fehler

1.0, 2.0

1.0 installieren

1.0

-

-

Fehler

1.0, 2.0

2.0 installieren

1.0

Installieren

2.0

Erfolg

1.0, 2.0

1.0 installieren

2.0

Installieren

1.0

Erfolg

1.0, 2.0

Deinstallieren

1.0

Deinstallieren

$null

Erfolg

1.0, 2.0

Deinstallieren

1.0

Deinstallieren

1.0

Fehler

1.0, 2.0

Deinstallieren

1234.0

-

-

Fehler


Fehlerbehebung

Stacktraces aufgetretener Fehler sind auf der Seite Details der Bereitstellungsrichtlinie verfügbar. Darüber hinaus können Sie die Schaltfläche App-Management-Protokolle anfordern in der Aufgabe Host Application Management für einen bestimmten Host auswählen, um alle Bereitstellungsprotokolle zu extrahieren.

War dieser Beitrag hilfreich?

0 von 0 fanden dies hilfreich
Haben Sie Fragen? Anfrage einreichen

Kommentare (0 Kommentare)

Zu diesem Beitrag können keine Kommentare hinterlassen werden.