Freigeben über


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 einen Not_Null - und ValueRange -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