Dieser Artikel enthält detaillierte Informationen zur Verwendung, zu den unterstützten Funktionen und zu wichtigen Überlegungen zu Windows-Skriptaktionen. Windows-Skriptaktionen ermöglichen die Ausführung benutzerdefinierter Skripte auf Windows-basierten Systemen innerhalb der festgelegten Einschränkungen und bieten verschiedene Optionen für die Parametersteuerung.
Anmerkung
Das Modell für die Ausführung von Windows-Skriptaktionen hat sich ab Version 5.3 geändert. Stellen Sie daher sicher, dass zuvor verwendete Windows-Skriptaktionen weiterhin funktionsfähig sind. Diese Änderung betrifft auch die REST-API. Verwenden Sie anstelle des Felds „ScriptedActionsIds“ „ScriptedActions“, um die Liste der Windows Scripted Actions zu übergeben. Aus Gründen der Abwärtskompatibilität sollte das Feld „ScriptedActionsIds“ jedoch ebenfalls funktionieren, obwohl es das Übergeben von Parametern nicht unterstützt.
Für Optionen für benutzerdefinierte Windows Scripted Actions steht Support zur Verfügung. Dies ermöglicht Ihnen das Ausführen von Windows-Skripten mit spezifischen Konfigurationen. Hier sind die aktuellen Einschränkungen und unterstützten Optionen:
Unterstützte Plattformen
Es werden nur Windows-Skripte unterstützt. Azure Runbooks werden nicht unterstützt.
Skriptausführungsmodus
Skripte können in den Modi „Individuell“ oder „Individuell mit Neustart“ ausgeführt werden.
Cloud PCs
Benutzerdefinierte Skripte werden auf Cloud-PCs nicht unterstützt.
Windows Scripted Actions-Gruppen
Die Verwendung von Skripten in Windows Scripted Actions-Gruppen wird nicht unterstützt.
Windows-Skripte beinhalten beim Speichern eine grundlegende PowerShell-Codevalidierung. Diese Funktion trägt dazu bei, sicherzustellen, dass der Code des Skripts syntaktisch korrekt ist, und minimiert potenzielle Probleme.
Windows Scripted Actions unterstützen eine Vielzahl von Parametertypen, von denen jeder über ein eigenes Steuerelement in der Benutzeroberfläche verfügt.
Tipp
`bool`, `switch`: Kontrollkästchen
`byte`, `sbyte`, `ushort`, `short`, `int`, `uint`, `long`, `ulong`, `float`, `double`, `decimal`: Zahleingabe mit Wertegrenzen für jeden Typ
`char`, `string`: Texteingabe
`string[]`: Mehrfachauswahl
Sie können die folgenden Attribute in Ihren Skripten verwenden:
Tipp
`DisplayName`
`Description`
`Parameter`
`Mandatory`
`HelpMessage` (kann das Attribut „Description“ überschreiben oder von diesem überschrieben werden)
`ParameterSetName` (derzeit nur für Nerdio Manager integrierte Parameter)
`ValidateSet` (für den Typ „string“, ersetzt die Texteingabe durch eine Einzelauswahl; für „string[]“ werden die verfügbaren Optionen festgelegt)
Sie können Parameter in Ihrem Skript mithilfe der JSON-Notation definieren. Die Struktur für JSON-Parameterdefinitionen sieht wie folgt aus:
Tipp
{
"parameter_name_1": {
"DisplayName": "string",
"Description": "string",
"IsRequired": "bool",
"Type": "string",
"OptionsSet": [
{ \"Wert\": \"Jeder Wert, der an den Skriptparameter übergeben wird\" },
{ \"Wert\": \"Anderer Wert\", \"Bezeichnung\": \"Anzeigename für diese Option, optional\" }
]
},
"parameter_name_2": { ... }
}
Anmerkung
Alle Parameter sowie die JSON-Definition selbst sind optional.
Standardvariablen werden standardmäßig an Windows Scripted Actions übergeben. Wenn Sie jedoch benutzerdefinierte Parameter einbeziehen, müssen diese Variablen mithilfe von ParameterSetName definiert werden, andernfalls werden sie in die skriptbasierte Aktion aufgenommen.
Um integrierte Nerdio Manager-Parameter zu verwenden, einschließlich `$AzureRegionName` und `$AzureSubscriptionName`, können Sie wie folgt vorgehen:
-
Lassen Sie den „param“-Block weg, dann gilt das alte Verhalten, bei dem integrierte Parameter automatisch an das Skript übergeben werden.
-
Wenn Sie dem „param“-Block einen erforderlichen integrierten Parameter mit dem richtigen Namen (wie im Tooltip aufgeführt) hinzufügen möchten, geben Sie den Typ an („string“ für die meisten, „object“ für `$SecureVars`) und legen Sie `ParameterSetName = \"NME_PARAMETER\"` fest.
Beispiel:
In diesem Fall ist der Parameter in der Benutzeroberfläche ausgeblendet, wird aber automatisch von Nerdio Manager an das Skript übergeben.
Tipp
param (
[Parameter(ParameterSetName="NME_PARAMETER")]
[string] $AzureRegionName
)
Stellen Sie sicher, dass Sie die korrekte Ausführung von Windows-Skriptaktionen in verschiedenen Szenarien überprüfen:
-
Führen Sie Windows-Skriptaktionen auf Hosts aus.
-
Führen Sie Windows-Skriptaktionen massenhaft auf Hosts aus.
-
Ausschalten und als Image festlegen.
-
Führen Sie Windows-Skriptaktionen auf einem Desktop-Image aus.
-
Erstellen Sie ein Desktop-Image aus einer Bibliothek.
-
Erstellen Sie ein Desktop-Image aus einer VM.
-
Klonen Sie ein Desktop-Image.
-
Hostpool-Einstellungen > Scripted Actions.
Kommentare (0 Kommentare)