Delen via


Over Configuration Manager aangepaste actie-MOF-bestanden

In Configuration Manager worden de implementatieacties van het besturingssysteem gedefinieerd in het MOF-bestand (Managed Object Format), %ProgramFiles%\Microsoft Configuration Manager\bin\i386\_tasksequenceprovider.mof.

Wanneer u een aangepaste actie maakt, moet u een MOF-bestand maken waarmee uw aangepaste actie wordt ge declareerd. Vervolgens gebruikt u Mofcomp.exe om uw wijzigingen toe te voegen aan de SMS-provider. Zie Een MOF-bestand maken voor een Configuration Manager aangepaste actie voor meer informatie.

De beheerder configureert de aangepaste actie, zoals gedefinieerd door het MOF-bestand, met behulp van een aangepast actiebeheer. Zie Over aangepaste acties Configuration Manager voor meer informatie.

MOF-bestandsinhoud

Een aangepaste actie is afgeleid van WMI-klasse SMS_TaskSequence_Action-server. De MOF-bestandsdeclaratie bevat een klassedefinitie en verschillende kwalificaties voor de opdrachtregel, takenreeksvariabelen, categorie en de assemblylocatie van aangepaste actiebesturingselementen.

Eigenschappen die zijn gedeclareerd in een klasse, met uitzondering van de eigenschappen met de CommandLineArg kwalificatie, zijn beschikbaar als takenreeksvariabelen tijdens de clientimplementatie. Zie Takenreeksvariabelen gebruiken in een actieve Configuration Manager takenreeks voor meer informatie.

De naamruimte voor de aangepaste actie is \\root\SMS_Site_SITECODE. Wanneer het MOF-bestand wordt gecompileerd, wordt de aangepaste actie gemaakt als onderliggend element van SMS_TaskSequence_Action WMI-klasse Server.

Opmerking

Zie de takenreeksactie MOF die is gedeclareerd in _tasksequenceprovider.mof voor een voorbeeld van MOF.

De sectie van het MOF-bestand voor de aangepaste actiedeclaratie ziet er ongeveer uit als in het volgende voorbeeld:

[   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;  

};  

De volledige MOF geeft ook de naamruimte en andere informatie op,

Zie How to Create a MOF File for a Configuration Manager Custom Action (Een MOF-bestand maken voor een Configuration Manager aangepaste actie) voor de volledige MOF voor dit voorbeeld.

Opdrachtregel

De opdrachtregel voor de actie wordt beschreven in de CommandLine klassekwalificatie. Het definieert de toepassing die wordt aangeroepen en de verschillende argumenten die kunnen worden opgegeven. Voor elk opdrachtregelargument is er een CommandLineArg klasse-kwalificatie voor het argument voor de bijbehorende klasseeigenschap.

CommandLine krijgt meestal de volgende vorm:

CommandLine("smsswd.exe /run:%1 Application.exe %2 %3")

Smsswd.exe wordt gebruikt om een programma in een pakket uit te voeren. Hiervoor zijn de volgende argumenten vereist:

Argument Beschrijving
/run:%1 Identificeert het pakket waarin de toepassing zich bevindt. %1 is de pakket-id (WMI-klasse-eigenschapPackageID SMS_Package server).
Application.exe De aangepaste actietoepassing die wordt uitgevoerd.
%2 - %n Een of meer opdrachtregelargumenten voor Application.exe.

De opdrachtregelvervangingstekenreeksen, %1, %2 enzovoort, worden gedefinieerd door de CommandLineArg klasse-kwalificatie. Met het volgende wordt bijvoorbeeld %1 declareren.

[TaskSequencePackage, CommandLineArg(1)]  
string          PackageIDForApplicationExe;  

Met het aangepaste actiebesturingselement gebruikt u de PackageIDForApplicationExe eigenschap om de pakket-id te configureren.

Opmerking

Eigenschappen die met de CommandLineArg kwalificatie zijn gedeclareerd, zijn niet beschikbaar als takenreeksvariabelen tijdens de clientimplementatie.

Actiecategorie

Een actie kan worden gekoppeld aan een specifieke categorie, in het vervolgkeuzemenu van de takenreekseditor, met behulp van de ActionCategory klasse-kwalificatie.

Opmerking

Gebruik geen categorie die al wordt gebruikt door een andere actie.

De syntaxis is:

ActionCategory{CategoryName,ActionOrder,CategoryOrder}

CategoryName
De categorienaam.

ActionOrder
De actievolgorde binnen de categorie.

CategoryOrder
De categorievolgorde binnen alle categorieën.

De standaardcategorieën Configuration Manager waaraan u een actie kunt toevoegen, zijn:

  • Algemeen

  • Schijven

  • User State

  • Afbeeldingen

  • Stuurprogramma 's

  • Instellingen

    U kunt ook een nieuwe categorie maken door een nieuwe categorie op te geven in de ActionCategory klasse-kwalificatie. Het volgende MOF-bestand maakt bijvoorbeeld een nieuwe categorie met de naam Mijn aangepaste categorie. De actie wordt op de tweede plaats geplaatst binnen de categorie en de categorie wordt vijfde algemeen.

    ActionCategory{"My Custom Category",2,5"},

ActionName

De ActionName klassekwalificatie definieert de naam van het aangepaste actie-besturingselement. De kwalificatie heeft de volgende syntaxis:

ActionName{"Assembly", "Namespace.Properties.Resources", "Control"}

Assembly
De assembly die het actie-besturingselement bevat.

Namespace.Properties.Resources
De naamruimte voor de resource die de weergegeven actienaamtekenreeksen bevat. Zie Een Configuration Manager aangepaste actie maken voor meer informatie.

Control
Het besturingselement dat de tekenreeksresources bevat.

Gebruikersinterface van actie

De ActionUI klassekwalificatie definieert de locatie van de assembly en klassen die worden gebruikt door een actie. De kwalificatie heeft de volgende syntaxis:

ActionUI{"Assembly","Namespace", "Control", "Option control"}

Assembly
De assembly die het actie-besturingselement bevat.

Namespace
De naamruimte waarin het actie-besturingselement zich bevindt.

Control
Het actie-besturingselement dat wordt weergegeven in de takenreekseditor. Het fungeert als host voor de besturingselementpagina van de optie.

Option control
De pagina die wordt gebruikt voor het beheren van actie-opties in de takenreekseditor.

Meerdere besturingstabbladen kunnen worden geïmplementeerd door meer namen van besturingsklassen op te voegen, gescheiden door komma's. Bijvoorbeeld:

ActionUI{"Assembly","Namespace", "Control1", "Control2", "Control3", "Option control"}

Actievariabelen

De VariableName kwalificatie wordt gebruikt om de naam van de standaardvariabele voor een eigenschap te overschrijven.

Een klasse-eigenschap kan worden gedefinieerd als een takenreeksvariabele door de VariableName klassekwalificatie toe te voegen. In het bovenstaande voorbeeld is de eigenschap MessageTimeout een actievariabele met de naam RebootTimeout.

Als de VariablePrefix klassekwalificatie wordt gebruikt, worden de variabelen voorafgegaan door de klassekwalificatiewaarde.

Zie Takenreeksvariabelen gebruiken in een actieve Configuration Manager takenreeks voor meer informatie over het gebruik van variabelen

Eigenschappen

Kwalificaties

Er zijn verschillende kwalificaties die kunnen worden toegepast op de MOF-eigenschappen. De volgende worden vaak gebruikt:

Kwalificatie Beschrijving
CommandLineArg Een eigenschap die moet worden ingevoegd op de opdrachtregel
Not_Null Er is een waarde vereist voor deze eigenschap.
ValueMap Hiermee geeft u een lijst met toegestane tekenreekswaarden op.
ValueRange Hiermee geeft u een bereik van toegestane waarden (int-velden).
RequiredIfNull Een waarde is vereist voor deze eigenschap als een andere eigenschap null is.
TaskSequencePackage Identificeert een eigenschap als een pakket-id.
VariableName Hiermee geeft u een andere naam voor de eigenschap in de takenreeksomgeving.
AllowedLen Hiermee geeft u het minimum- en maximumaantal tekens in een tekenreeks op.
SuccessCodes Hiermee geeft u een of meer retourcode van het uitvoerbare bestand op die aangeeft dat het is gelukt.

Beperkingen

  • Reguliere kwalificatiebeperkingen kunnen worden toegepast op klasse-eigenschappen. In het bovenstaande voorbeeld kunnen de opdrachtregelargumenten bijvoorbeeld niet zijn null. Zie de WMI-SDK (Windows Management Instrumentation) voor meer informatie.

  • Zorg ervoor dat de namen en kwalificaties van eigenschappen worden gesynchroniseerd tussen het MOF-bestand, het aangepaste actiebesturingselement en de clienttoepassing. De namen van de eigenschappen moeten overeenkomen met eventuele beperkingen. Als bijvoorbeeld een int eigenschap is vereist en deze zich in het bereik 1 - 512 moet hebben, moet het MOF-bestand een Not_Null en-kwalificatie ValueRange hebben, moet het aangepaste besturingselement ervoor zorgen dat de eigenschap is ingesteld en binnen het bereik valt en moet de clienttoepassing de waarde controleren voordat deze wordt gebruikt.

Zie ook

Over aangepaste acties Configuration Manager
Een Configuration Manager aangepast actie-besturingselement maken
Een MOF-bestand maken voor een Configuration Manager aangepaste actie
Takenreeksvariabelen gebruiken in een actieve Configuration Manager takenreeks
Over Configuration Manager custom action-clienttoepassingen