Runbook-Anpassung
Passen Sie die generischen Runbooks von RealmJoin an die Bedürfnisse Ihrer Umgebung an.
Übersicht
Die RealmJoin-Runbook-Implementierung bietet dem Autor eines Runbooks oder dem Administrator einer Umgebung Anpassungsmöglichkeiten, sodass sie:
kundenspezifische/Tenant-spezifische Parameter und Vorlagen hosten
UI-Elemente wie Benutzerauswahlen oder Dropdown-Auswahlen anbieten
für Menschen lesbare Erklärungen von Parametern anzeigen
nicht benötigte UI-Elemente ausblenden

Die Anpassungen können im Runbook selbst enthalten sein und/oder in der RealmJoin-Portal-Instanz des Kunden gespeichert werden. Standardmäßig versuchen wir, sinnvolle Standardwerte in den auf GitHub.
Einige Runbooks werden mit Beispielen geliefert, wie kundenspezifische Vorlagen konfiguriert werden, etwa durch das Festlegen von Office-Standorten für das Onboarding von Benutzern.
Formatieren
Die Anpassung kann definiert werden (in absteigender Priorität)
JSON-Block in RealmJoin Portal-Einstellungen, wodurch das Standardverhalten des Runbooks überschrieben wird
JSON-Block im Header eines Runbooks
Zusätzlich (mit der geringsten Priorität)
pro Parameter im Header des Runbooks
pro Parameter im Param-Block des Runbooks (unter Verwendung des RJRb Helper Module)
Einige Funktionen (wie Vorlagen) sind nur im JSON-Format verfügbar. Einige Funktionen (wie das Erstellen eines Benutzer-Pickers) sind nur verfügbar, wenn im Param-Block ein Datentyp angegeben wird. Sie können mehrere Arten von Anpassungen kombinieren, um die besten Ergebnisse zu erzielen.
Runbook-Param-Block
Das RealmJoin Portal analysiert den PowerShell-Param-Block eines Runbooks, um zu bestimmen, welche Eingabefelder gerendert werden sollen. Soweit möglich validiert es die Eingaben auch anhand des für eine Variable angegebenen .NET-Typs.
Die folgenden Datentypen werden derzeit verstanden:
[bool],[boolean]- zeigt einen binären Umschalter an[string]- zeigt ein Textfeld für die Eingabe beliebiger alphanumerischer Zeichen an[int]- zeigt ein Textfeld an, das nur numerische Eingaben zulässt[DateTime],[DateTimeOffset]- zeigt einen Datum/Uhrzeit-Picker an
Sie können Standard-PowerShell-Modifikatoren auf Parameter anwenden. Das RealmJoin Portal versteht insbesondere, wenn Sie Folgendes angeben [Parameter(Mandatory = $true)] um einen obligatorischen Parameter zu kennzeichnen und zu erzwingen, dass diese Parameter ausgefüllt werden.
Soweit möglich liest das RealmJoin Portal angegebene Standardwerte ebenfalls aus und zeigt sie in der UI an.
Beachten Sie, dass Standardwerte aus dem Runbook durch Anpassungen überschrieben werden können. Außerdem können Parameter durch Anpassungen vollständig ausgeblendet werden.
Parameter anpassen
Um Parameter anpassen zu können, stellen Sie bitte sicher, dass Sie das RealmJoin Runbook Helper PS Module in Ihr Runbook einbinden:
#Requires -Modules @{ModuleName = "RealmJoin.RunbookHelper"; ModuleVersion = "0.6.0" }
Sie können dann Folgendes einfügen [ValidateScript( { Use-RJInterface ... } )] Anweisungen in den Parameterdefinitionen. Das Folgende erstellt beispielsweise einen Benutzer-Picker, mit dem ein Entra ID-Benutzer ausgewählt werden kann, und übergibt dessen Objekt-ID als Zeichenfolge an das Runbook.
Gehen wir dies Stück für Stück durch. [ValidateScript...] ist ein Modifikator für den im Param-Block als Nächstes definierten Parameter. In diesem Fall die Variable $AssignedUserId.
Use-RJInterface ist Teil unseres RealmJoin Runbook Helper PowerShell-Moduls. Es ermöglicht Ihnen anzugeben, welche Art von Eingabe Sie mit -Type und -Entityangeben, falls dies nicht bereits vollständig durch den Typ der Variablen definiert ist.
-DisplayName ermöglicht es Ihnen, dem RealmJoin Portal eine für Menschen lesbare Aufforderung / Beschreibung für diesen Parameter zu übergeben.
Graph-Ressourcen
Im obigen Beispiel ist die Informationsquelle MS Graph, wie beschrieben durch -Type Graph. Verwenden Sie für MS Graph -Entity um anzugeben, welche Art von Ressource Sie erwarten. Verfügbare Entitäten sind Benutzer, Gruppe, Gerät. Dies erzeugt einen Picker für Benutzer, Gruppen oder Geräte im angegebenen Entra ID.
Der Picker enthält eine Schnellsuche, um die benötigte Ressource leicht zu finden.

Derzeit ist mit einem Picker keine Mehrfachauswahl möglich.
Standardmäßig gibt ein MS-Graph-Picker die ID des Objekts zurück. Wenn Sie z. B. stattdessen den User Principal Name benötigen, stellen Sie sicher, dass Sie "name" als Suffix im Namen Ihrer Variable verwenden. Um also die ID eines Benutzers zu erhalten, nennen Sie den Parameter $userid. Wenn Sie einen UPN möchten, nennen Sie ihn $username.
Graph-Filterung
Wenn Sie einen auf MS Graph basierenden Picker verwenden, können Sie auch -Filter und einen ODATA-Filter verwenden, um die im Picker angebotenen Objekte einzugrenzen.
Das folgende Beispiel listet nur Gruppen aus Entra ID auf, die mit "LIC_" beginnen.
Sie können Filter vorbereiten und sie mithilfe des zentralen Datenspeichers. Verweisen Sie in diesem Fall einfach über den Namen auf den Filter mit -Filter "ref:LicenseGroup", wobei ref: angibt, nach einem gespeicherten Filter zu suchen.
Dieses spezielle Beispiel ref:LicenseGroup ist standardmäßig ohne weitere Konfiguration verfügbar.

Runbook-Header
Das Portal kann den kommentarbasierten Hilfe Abschnitt analysieren, falls vorhanden.
Hier ist ein Beispiel:
.SYNOPSIS - Geben Sie eine sehr kurze Beschreibung der Funktion Ihres Runbooks an. Diese wird in der Liste der verfügbaren Runbooks angezeigt.
.DESCRIPTION - Geben Sie eine Beschreibung der Funktion Ihres Runbooks an. Sie kann etwas detaillierter sein, da sie im Ausführungs-/Parameterdialog der Runbooks angezeigt wird.
.PARAMETER - Muss von einem Parameternamen gefolgt werden. Ermöglicht Ihnen, eine ausführliche Erklärung der erwarteten Eingabe für den betreffenden Parameter anzugeben.
.INPUTS - Kann einen Block der JSON-basierten Runbook-Anpassung enthalten.
.NOTES - Wird nicht analysiert / gerendert. Bitte nutzen Sie diesen Bereich, um festzuhalten, welche Berechtigungen und Anforderungen für Ihr Runbook gelten.
.EXAMPLE - Wird nicht analysiert / gerendert. Kann ein Beispiel einer JSON-basierten Anpassung enthalten, das im RealmJoin-Datenspeicher Ihres Tenants verwendet wird. Dies können Beispiele dafür sein, wie Vorlagen erstellt werden, z. B. für unterschiedliche Workflows oder Benutzerklassen.
JSON-basierten Anpassung
Zentraler Datenspeicher
Jeder Azure-Tenant kann einen Datenspeicher für "Runbook Customizations" hosten, zu finden unter https://portal.realmjoin.com/settings/runbooks-customizations .
Das Format ist JSON mit Kommentaren und erlaubt nachgestellte Kommata. Derzeit gibt es drei relevante Abschnitte, Einstellungen, Vorlagen, Runbooks.
Runbooks-Abschnitt
Runbooks wird vom Portal beim Starten eines Runbooks analysiert. Wenn ein Abschnitt mit dem Namen des aktuellen Azure Automation Runbooks vorhanden ist, wird dessen Inhalt verwendet, um das dem Benutzer angezeigte Frontend anzupassen.
Nehmen wir folgendes einfaches Demonstrations-Runbook an, genannt rjgit-device_demo-runbook-customizing.
Wenn keine Anpassung vorgenommen wird, wird es im Frontend so dargestellt:

Gedanken:
Da dieses Runbook aus dem Kontext eines Geräts im Portal gestartet wird, ist der
$DeviceIdfür einen Benutzer redundante Information. Ich weiß bereits, an welchem Gerät ich arbeite.Was passiert, wenn ich den "Extra Workflow" aktiviere oder deaktiviere? Muss ich an "Extra Workflow Time" denken, wenn ich "Extra Workflow" deaktiviere?
Lassen Sie uns das verbessern. Das folgende Beispiel-JSON im zentralen Datenspeicher wird die UI für das Runbook anpassen.
Sie können die gleiche Notation / dieselben Funktionen in Ihrem Runbook-Header.
ParameterList
Jeder Parameter hat seinen eigenen Abschnitt in ParameterList. Modifikatoren ermöglichen es, das Verhalten dieses Parameters zu ändern.
Das Ergebnis sieht dann so aus:

Wenn der zusätzliche Workflow gewählt wird, werden weitere Parameter angezeigt (eingeblendet):

Dies zeigt im Vergleich zu vorher weniger Unordnung vor Anwendung der Anpassung. Gleichzeitig stehen dem Benutzer mehr Informationen über die Alternativen von "Extra Workflow" zur Verfügung. Außerdem muss sich ein Benutzer nun nur dann um "Extra Workflow Time" kümmern, wenn es relevant ist.
Die Sichtbarkeit dieses Feldes wurde mithilfe eines "Customization" Blocks innerhalb einer der "Select" Optionen geändert. Sie können derzeit höchstens einen solchen "Customization" Block gleichzeitig aktiv haben.
Wie Sie sehen, ist der Parameter $DeviceId ist vollständig ausgeblendet. Dies geschieht durch Setzen des "Hide": true für diesen Parameter.
Parameter können ein DisplayName. Wir haben eine benutzerfreundliche DisplayName zum Ersetzen von $ExtraWorkflowTime in der UI. Siehe andere Modifikatoren für mehr.
Sie können "unnamed"-Parameter (ohne die Name Anweisung) wie den Abschnitt "Execute Extra Workflow" einfügen, wenn Sie UI-Elemente anbieten möchten, ohne direkt einen Wert zurückzugeben. Dies wird normalerweise nur in Verbindung mit Wählen Sie.
Wählen Sie
Wir verwendeten Wählen Sie, um eine Liste von Optionen in einem Dropdown anzuzeigen. Jede Option kann Anzeige Text sein oder einen Anpassungauslösen, wie das Setzen von Hide oder eines Standard Werts auf anderen Parametern. In unserem Beispiel verwendeten wir dies, um $ExtraWorkflowTime und $ExtraWorkflowWert ein- bzw. auszublenden.
$ExtraWorkflowTime wird daher nur angezeigt, wenn es relevant ist, und der binäre Umschalter $ExtraWorkflow wird nun aus Sicht des Benutzers durch sinnvolle Alternativen ersetzt.
Im Fall eines Wählen Sie für einen benannten Parameter sollte jede Option ein "ParameterValue": "..." aufweisen, das an das Runbook übergeben wird. Sie können ein "ShowValue: false" in den Wählen Sie Block setzen, um nur das Dropdown anzuzeigen und kein Feld für den resultierenden Parameterwert.
Beispiel für benannte Parameter:
Die Standard / DefaultValue Anweisung im Parameter legt außerdem den Anfangszustand des Dropdowns fest. Im Fall eines nicht benannten Parameters verwenden Sie den DisplayName der gewünschten Option, andernfalls geben Sie einen Standard-Rückgabewert an, wie "true" oder "false" oder eine Zeichenfolge.
Parameter
Wenn Sie nur benannte Parameter haben, können Sie das etwas kürzere Parameter Format anstelle von ParameterList.
Für ein Beispiel siehe SelectSimple
SelectSimple
Wenn die volle Leistungsfähigkeit eines Wählen Sie nicht benötigt wird und Sie lediglich eine Liste möglicher Werte in einem Dropdown anbieten möchten (ohne zusätzliche Anpassungen anzuwenden), können Sie SelectSimple.
SelectSimple nur für benannte Parameter verwendet werden.
Beispiel:
Der größte Unterschied zu unserem vorherigen Beispiel (abgesehen davon, dass es viel kürzer ist) ist, dass $ExtraWorkflowTime immer sichtbar ist.
Modifikatoren
Jeder Parameter kann einen oder mehrere der folgenden Modifikatoren haben:
"DisplayName": "text"- Zeigt "text" als Namen für den Parameter in der UI an"Hide": true / false- Verbirgt diesen Parameter"Mandatory": true / false- Erfordert, dass dieser Parameter ausgefüllt wird"ReadOnly": true / false- Schützt diesen Parameter davor, dass er gegenüber seinem Standardwert geändert wird"DefaultValue": "..."- Legt einen Standardwert für diesen Parameter fest. (Sie können auchStandardstattdessen verwenden.)"GraphFilter": "startswith(DisplayName, 'LIC_')"- siehe Graph-Filterung"AllowEdit": true / false- Schützt diesen Parameter vor manueller Bearbeitung. (kombinieren Sie dies mit Vorlagen)
Einstellungen
Einstellungen ermöglicht es Ihnen, Konfigurationsdaten wie Azure Storage Account-Namen an einem zentralen Ort zu speichern und sie dennoch von Ihren Runbooks getrennt zu halten.
Sie können auf einzelne Werte aus dem Param-Block eines Runbooks zugreifen, indem Sie Use-RJInterface.
Nehmen wir diesen Beispiel-Param-Block eines Runbooks:
Das Portal versucht, jeden Parameter mit Werten aus dem zentralen Datenspeicher vorab zu füllen – sofern vorhanden. Dies funktioniert auch, wenn der Parameter in der UI ausgeblendet wurde.
Ein mögliches JSON im Datenspeicher für dieses Runbook wäre:
Das fehlende Container -Element wird in der UI einfach nicht vorab ausgefüllt.
Vorlagen
Vorlagen verwenden Sie JSON-Referenzen, um Daten einzubinden – beispielsweise eine umfangreiche Liste von Office-Standorten – wenn Sie eine Wählen Sie Anweisung verwenden.
Dadurch kann eine Anpassung neutral/wiederverwendbar/von den eigentlichen Daten getrennt bleiben.
Nehmen wir das Beispiel der Aufnahme neuer Benutzer. Sie haben möglicherweise mehrere vorgegebene Optionen für Abteilungen oder Office-Standorte, wobei die Zuweisung eines Office-Standorts auch eine bestimmte Straße, ein Land, ein Bundesland usw. voraussetzt.
Das folgende Beispiel einer Runbook-Anpassung verwendet den $ref in den Runbooks Abschnitt, um einen Teilbaum aus dem Vorlagen Abschnitt zu referenzieren/importieren. Achten Sie auf die $id/$values Schlüsselwörter. Beachten Sie, dass $id/$values definiert werden müssen, bevor Sie sie mittels $ref. Deshalb ist Vorlagen vor Runbooks in diesem Beispiel definiert.
In diesem Beispiel weisen wir das Portal an, den Teilbaum mit der $id genannt LocationOptions und dessen $values, wodurch die $ref Anweisung ersetzt wird. Das Portal rendert also eine Wählen Sie wie in der Runbooks Abschnitt, aber die tatsächlichen Optionen aus Vorlagen.
Eine Vorlage kann jede Anweisung enthalten, die an der referenzierenden Stelle unterstützt wird. In diesem Beispiel verwenden wir eine Anpassung Anweisung, um andere Parameter wie Straßenadresse.
So können wir eine runbookspezifische Anpassung in Runbooks wiederverwendbar über mehrere Umgebungen hinweg, während die tatsächlichen Daten getrennt bleiben.
Dies erzeugt die folgende Benutzeroberfläche:


Graph-Filter
Sie können ODATA Graph-Filter zur Verwendung in mehreren Runbooks vorbereiten. Speichern Sie diese in einem Abschnitt namens GraphFilters.
Das folgende Beispiel filtert nach einem bestimmten Präfix in der DisplayName Gruppe, um in einem Gruppenauswahlfeld nur lizenzbezogene Gruppen anzuzeigen.
Siehe Graph-Filterung wie dies aus einem Runbook verwendet wird.
Zuletzt aktualisiert
War das hilfreich?