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 eenNot_Null
en-kwalificatieValueRange
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