Lägga till ett villkor i ett aktivitetssekvenssteg för operativsystemdistribution
Villkor kan läggas till i ett distributionssteg för operativsystem (åtgärd och grupp) i Configuration Manager genom att skapa en SMS_TaskSequence_Condition klassinstans och sedan associera den med steget. Om alla villkorsopernder uppfylls bearbetas steget. annars är det inte det. Villkoret kan ha en eller flera operander som är instanser av SMS_TaskSequence_Condition härledda klasser. Du anger operatorer för operanderna med instanser av SMS_TaskSequence_ConditionOperator.
Lägga till ett villkor i ett steg
Konfigurera en anslutning till SMS-providern. Mer information finns i grunderna för SMS-provider.
Hämta ett aktivitetssekvensstegobjekt. Detta kan vara ett SMS_TaskSequence_Group objekt för en grupp eller ett SMS_TaskSequenceAction härlett klassobjekt för en åtgärd. Mer information finns i Lägga till en aktivitetssekvensåtgärd för operativsystemdistribution.
Skapa ett nytt villkor genom att skapa en instans av
SMS_TaskSequence_Condition
.Skapa ett uttryck för villkoret genom att skapa en instans av en SMS_TaskSequence_ConditionExpression härledd klass. Till exempel SMS_TaskSequence_RegistryConditionExpression.
Fyll i uttrycksegenskaperna.
Lägg till uttrycket i villkoret Operands-egenskapen .
Lägg till villkoret i egenskapen för aktivitetssekvensstegklassen Villkor .
Exempel
Följande exempelmetod lägger till ett villkor i ett angivet steg som avgör om HKEY_LOCAL_MACHINE\MICROSOFT registernyckel finns. Uttrycket SMS_TaskSequenc_RegistryCondition används för att ange villkoret.
Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.
Sub AddRegistryCondition (connection, taskSequenceStep)
Dim condition
Dim registryExpression
Dim operands
' Get or create the condition.
if IsNull ( taskSequenceStep.Condition) Then
Set condition = connection.Get("SMS_TaskSequence_Condition").SpawnInstance_
Else
Set condition = taskSequenceStep.Condition
End If
' Populate the condition.
Set registryExpression=connection.Get("SMS_TaskSequence_RegistryConditionExpression").SpawnInstance_
registryExpression.KeyPath="HKEY_LOCAL_MACHINE\MICROSOFT"
registryExpression.Operator="exists"
registryExpression.Type="REG_SZ"
registryExpression.Data=Null
' Add the condition.
operands=Array(registryExpression)
condition.Operands=operands
taskSequenceStep.Condition=condition
End Sub
public void AddRegistryCondition(
WqlConnectionManager connection,
IResultObject taskSequenceStep)
{
try
{
IResultObject condition;
if (taskSequenceStep["Condition"].ObjectValue == null)
{
// Create a new condition.
condition = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_Condition");
}
else
{ // Get the existing condition.
condition = taskSequenceStep.GetSingleItem("Condition");
}
// Create and populate the expression.
IResultObject registryExpression = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_RegistryConditionExpression");
registryExpression["KeyPath"].StringValue = @"HKEY_LOCAL_MACHINE\MICROSOFT";
registryExpression["Operator"].StringValue = "exists";
registryExpression["Type"].StringValue = "REG_SZ";
registryExpression["Data"].StringValue = null;
// Get the operands and add the expression.
List<IResultObject> operands = condition.GetArrayItems("Operands");
operands.Add(registryExpression);
// Add the expresssion to the list of operands.
condition.SetArrayItems("Operands", operands);
// Add the condition to the sequence.
taskSequenceStep.SetSingleItem("Condition", condition);
}
catch (SmsException e)
{
Console.WriteLine("Failed to create Task Sequence: " + e.Message);
throw;
}
}
Exempelmetoden har följande parametrar:
Parameter | Typ | Beskrivning |
---|---|---|
connection |
-Hanterade: WqlConnectionManager – VBScript: SWbemServices |
En giltig anslutning till SMS-providern. |
taskSequenceStep |
-Hanterade: IResultObject – VBScript: SWbemObject |
Ett giltigt aktivitetssekvenssteg (SMS_TaskSequenceStep). |
Kompilera koden
C#-exemplet har följande kompileringskrav:
Namnområden
System
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Församlingen
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robust programmering
Mer information om felhantering finns i Om Configuration Manager fel.
.NET Framework Säkerhet
Mer information om hur du skyddar Configuration Manager program finns i Configuration Manager rollbaserad administration.
Se även
ObjektöversiktSå här lägger du till en aktivitetssekvensåtgärd för operativsystemdistribution
Ansluta till en SMS-provider i Configuration Manager med hjälp av hanterad kod
Ansluta till en SMS-provider i Configuration Manager med hjälp av WMI
Översikt över aktivitetssekvens