Informationen zu Configuration Manager MOF-Dateien für benutzerdefinierte Aktionen
In Configuration Manager werden Betriebssystembereitstellungsaktionen in der MOF-Datei (Managed Object Format) %ProgramFiles%\Microsoft Configuration Manager\bin\i386\_tasksequenceprovider.mof definiert.
Wenn Sie eine benutzerdefinierte Aktion erstellen, müssen Sie eine MOF-Datei erstellen, die Ihre benutzerdefinierte Aktion deklariert. Anschließend verwenden Sie Mofcomp.exe, um Ihre Änderungen dem SMS-Anbieter hinzuzufügen. Weitere Informationen finden Sie unter How to Create a MOF File for a Configuration Manager Custom Action.For more information, see How to Create a MOF File for a Configuration Manager Custom Action.
Der Administrator konfiguriert die benutzerdefinierte Aktion, wie in der MOF-Datei definiert, mithilfe eines benutzerdefinierten Aktionssteuerelements. Weitere Informationen finden Sie unter Informationen Configuration Manager benutzerdefinierten Aktionen.
MOF-Dateiinhalt
Eine benutzerdefinierte Aktion wird von SMS_TaskSequence_Action Server-WMI-Klasse abgeleitet. Die MOF-Dateideklaration enthält eine Klassendefinition und verschiedene Qualifizierer für die Befehlszeile, Tasksequenzvariablen, Kategorie und den Speicherort der Assembly für benutzerdefinierte Aktionssteuerelemente.
Eigenschaften, die in einer Klasse deklariert wurden, mit Ausnahme von Eigenschaften mit dem Qualifizierer, sind während der CommandLineArg
Clientbereitstellung als Tasksequenzvariablen verfügbar. Weitere Informationen finden Sie unter Verwenden von Tasksequenzvariablen in einer ausgeführten Configuration Manager Tasksequenz.
Der Namespace für die benutzerdefinierte Aktion ist \\root\SMS_Site_SITECODE. Wenn die MOF-Datei kompiliert wird, wird die benutzerdefinierte Aktion zu einem untergeordneten Element der WMI-Serverklasse SMS_TaskSequence_Action.
Hinweis
Ein MoF-Beispiel finden Sie in der Tasksequenzaktion MOF, die in _tasksequenceprovider.mof deklariert wird.
Der Abschnitt der MOF-Datei für die benutzerdefinierte Aktionsdeklaration sieht in etwa wie im folgenden Beispiel aus:
[ CommandLine("smsswd.exe /run:%1 Application.exe /user:%2"),
VariablePrefix("MyCustomActionPrefix"),
ActionCategory("My Custom Action Category,7,1"),
ActionName{"ConfigMgrTSAction.dll", "ConfigMgrTSAction.Properties.Resources", "ConfigMgrTSAction"},
ActionUI{"ConfigMgrTSAction.dll", "ConfigMgrTSAction","ConfigMgrTSActionControl",
"ConfigureTSActionOptions"}
]
class ConfigMgrTSActionControl : SMS_TaskSequence_Action
{
[TaskSequencePackage, CommandLineArg(1)]
string PackageIDForApplicationExe;
[Not_Null, CommandLineArg(2)]
string User;
[VariableName("CustomLocation")]
string Location;
};
Das vollständige MOF gibt auch den Namespace und andere Informationen an,
Das vollständige MOF für dieses Beispiel finden Sie unter Erstellen einer MOF-Datei für eine Configuration Manager benutzerdefinierte Aktion.
Befehlszeile
Die Befehlszeile für die Aktion wird im CommandLine
Klassenqualifizierer beschrieben. Es definiert die aufgerufene Anwendung und die verschiedenen Argumente, die bereitgestellt werden können. Für jedes Befehlszeilenargument gibt es einen CommandLineArg
Klassenqualifizierer für das Argument für die entsprechende Klasseneigenschaft.
CommandLine
hat in der Regel folgendes Format:
CommandLine("smsswd.exe /run:%1 Application.exe %2 %3")
Smsswd.exe wird verwendet, um ein Programm innerhalb eines Pakets auszuführen. Hierfür sind die folgenden Argumente erforderlich:
Argument | Beschreibung |
---|---|
/run:%1 | Identifiziert das Paket, in dem sich die Anwendung befindet. %1 ist der Paketbezeichner (eigenschaft SMS_Package Server-WMI-KlassePackageID ). |
Application.exe | Die benutzerdefinierte Aktionsanwendung, die ausgeführt wird. |
%2 – %n | Mindestens ein Befehlszeilenargument für Application.exe. |
Die Befehlszeilenersetzungszeichenfolgen %1, %2 usw. werden vom CommandLineArg
Klassenqualifizierer definiert. Im folgenden Beispiel wird %1 deklariert.
[TaskSequencePackage, CommandLineArg(1)]
string PackageIDForApplicationExe;
Mit dem benutzerdefinierten Aktionssteuerelement verwenden Sie die PackageIDForApplicationExe
-Eigenschaft, um den Paketbezeichner zu konfigurieren.
Hinweis
Mit dem Qualifizierer deklarierte Eigenschaften sind während der CommandLineArg
Clientbereitstellung nicht als Tasksequenzvariablen verfügbar.
Aktionskategorie
Eine Aktion kann einer bestimmten Kategorie im Dropdownmenü des Tasksequenz-Editors zugeordnet werden, indem der ActionCategory
Klassenqualifizierer verwendet wird.
Hinweis
Verwenden Sie keine Kategorie, die bereits von einer anderen Aktion verwendet wird.
Die Syntax lautet:
ActionCategory{CategoryName,ActionOrder,CategoryOrder}
CategoryName
Der Kategoriename.
ActionOrder
Die Aktionsreihenfolge innerhalb der Kategorie.
CategoryOrder
Die Kategoriereihenfolge innerhalb aller Kategorien.
Die standardmäßigen Configuration Manager Kategorien, denen Sie eine Aktion hinzufügen können, sind:
Allgemein
Datenträger
Benutzerstatus
Bilder
Treiber
Einstellungen
Sie können auch eine neue Kategorie erstellen, indem Sie eine neue Kategorie im
ActionCategory
Klassenqualifizierer angeben. Mit der folgenden MOF-Datei wird beispielsweise eine neue Kategorie namens My Custom Category erstellt. Die Aktion wird an zweiter Stelle innerhalb der Kategorie und die Kategorie auf Platz fünf insgesamt platziert.ActionCategory{"My Custom Category",2,5"},
ActionName
Der ActionName
Klassenqualifizierer definiert den Namen des benutzerdefinierten Aktionssteuerelements. Der Qualifizierer weist die folgende Syntax auf:
ActionName{"Assembly", "Namespace.Properties.Resources", "Control"}
Assembly
Die Assembly, die das Aktionssteuerelement enthält.
Namespace.Properties.Resources
Der Namespace für die Ressource, die die angezeigten Aktionsnamenzeichenfolgen enthält. Weitere Informationen finden Sie unter Erstellen eines Configuration Manager benutzerdefinierten Aktionssteuerelements.
Control
Das Steuerelement, das die Zeichenfolgenressourcen enthält.
Aktions-Benutzeroberfläche
Der ActionUI
Klassenqualifizierer definiert den Speicherort der Assembly und der Klassen, die von einer Aktion verwendet werden. Der Qualifizierer weist die folgende Syntax auf:
ActionUI{"Assembly","Namespace", "Control", "Option control"}
Assembly
Die Assembly, die das Aktionssteuerelement enthält.
Namespace
Der Namespace, in dem sich das Aktionssteuerelement befindet.
Control
Das im Tasksequenz-Editor angezeigte Aktionssteuerelement. Sie hostet die Optionssteuerungsseite.
Option control
Die Seite, die zum Verwalten von Aktionsoptionen im Tasksequenz-Editor verwendet wird.
Mehrere Steuerelementregisterkarten können implementiert werden, indem weitere Durch Kommas getrennte Steuerelementklassennamen eingeschlossen werden. Zum Beispiel:
ActionUI{"Assembly","Namespace", "Control1", "Control2", "Control3", "Option control"}
Aktionsvariablen
Der VariableName
Qualifizierer wird verwendet, um den Standardvariablennamen für eine Eigenschaft außer Kraft zu setzen.
Eine Klasseneigenschaft kann durch Hinzufügen des VariableName
Klassenqualifizierers als Tasksequenzvariable definiert werden. Im obigen Beispiel ist die -Eigenschaft MessageTimeout
eine Aktionsvariable mit dem Namen RebootTimeout
.
Wenn der VariablePrefix
Klassenqualifizierer verwendet wird, wird den Variablen der Klassenqualifiziererwert vorangestellt.
Weitere Informationen zur Verwendung von Variablen finden Sie unter Verwenden von Tasksequenzvariablen in einer ausgeführten Configuration Manager Tasksequenz.
Eigenschaften
Qualifikation
Es gibt mehrere Qualifizierer, die auf die MOF-Eigenschaften angewendet werden können. Häufig werden die folgenden Elemente verwendet:
Qualifizierer | Beschreibung |
---|---|
CommandLineArg | Eine Eigenschaft, die in die Befehlszeile eingefügt werden soll |
Not_Null | Für diese Eigenschaft ist ein Wert erforderlich. |
ValueMap | Gibt eine Liste zulässiger Zeichenfolgenwerte an. |
ValueRange | Gibt einen Bereich zulässiger Werte (int-Felder) an. |
RequiredIfNull | Ein Wert ist für diese Eigenschaft erforderlich, wenn eine andere Eigenschaft NULL ist. |
TaskSequencePackage | Identifiziert eine Eigenschaft als Paketbezeichner. |
Variablename | Gibt einen anderen Namen für die Eigenschaft in der Tasksequenzumgebung an. |
AllowedLen | Gibt die minimale und maximale Anzahl von Zeichen in einer Zeichenfolge an. |
SuccessCodes | Gibt mindestens einen Rückgabecode aus der ausführbaren Datei an, der den Erfolg anzeigt. |
Einschränkungen
Reguläre Qualifizierereinschränkungen können auf Klasseneigenschaften angewendet werden. Im obigen Beispiel können die Befehlszeilenargumente beispielsweise nicht sein
null
. Weitere Informationen finden Sie im WMI-SDK (Windows Management Instrumentation).Stellen Sie sicher, dass Eigenschaftennamen und Qualifizierer zwischen der MOF-Datei, dem benutzerdefinierten Aktionssteuerelement und der Clientanwendung synchronisiert werden. Die Eigenschaftennamen müssen mit allen Einschränkungen übereinstimmen. Wenn z. B. eine
int
Eigenschaft erforderlich ist und sich im Bereich 1 bis 512 befinden muss, sollte die MOF-Datei über einenNot_Null
- undValueRange
-Qualifizierer verfügen, das benutzerdefinierte Steuerelement sollte sicherstellen, dass die Eigenschaft innerhalb des Bereichs festgelegt ist, und die Clientanwendung sollte den Wert überprüfen, bevor sie verwendet wird.
Siehe auch
Informationen zu Configuration Manager benutzerdefinierten Aktionen
Erstellen eines Configuration Manager benutzerdefinierten Aktionssteuerelements
Erstellen einer MOF-Datei für eine Configuration Manager benutzerdefinierte Aktion
Verwenden von Tasksequenzvariablen in einer ausgeführten Configuration Manager Tasksequenz
Informationen zu Configuration Manager Clientanwendungen für benutzerdefinierte Aktionen