Räkna upp stegen i en aktivitetssekvens för operativsystemdistribution
Du räknar upp en aktivitetssekvens för operativsystemdistribution i Configuration Manager med hjälp av en rekursiv metod för att genomsöka aktivitetssekvensstegen och grupperna.
Räkna upp stegen i en aktivitetssekvens
Konfigurera en anslutning till SMS-providern. Mer information finns i grunderna för SMS-provider.
Hämta en giltig aktivitetssekvens SMS_TaskSequence objekt. Mer information finns i How to Create an Operating System Deployment Task Sequence (Skapa en aktivitetssekvens för operativsystemdistribution)
Räkna upp genom stegen för att visa alla åtgärdsnamn (SMS_TaskSequence_Action). Använd rekursion för att komma åt alla grupper (SMS_TaskSequence_Group) som hittas och visa deras åtgärder.
Exempel
I följande exempel visas åtgärder och grupper i en aktivitetssekvens.
Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.
Sub RecurseTaskSequenceSteps(taskSequence, indent)
Dim osdStep
Dim i
' Indent each new group.
for each osdStep in taskSequence.Steps
for i=0 to indent
WScript.StdOut.Write " "
next
If osdStep.SystemProperties_("__CLASS")="SMS_TaskSequence_Group" Then
wscript.StdOut.Write "Group: "
End If
WScript.Echo osdStep.Name
' Recurse into each group found.
If osdStep.SystemProperties_("__CLASS")="SMS_TaskSequence_Group" Then
If IsNull(osdStep.Steps) Then
Wscript.Echo "No steps"
Else
Call RecurseTaskSequenceSteps (osdStep, indent+3)
End If
End If
Next
End Sub
public void RecurseTaskSequenceSteps(
IResultObject taskSequence,
int indent)
{
try
{
// The array of SMS_TaskSequence_Steps.
List<IResultObject> steps = taskSequence.GetArrayItems("Steps");
foreach (IResultObject ro in steps)
{
for (int i = 0; i < indent; i++)
{
Console.Write(" ");
}
if (ro["__CLASS"].StringValue == "SMS_TaskSequence_Group")
{
Console.Write("Group: ");
}
Console.WriteLine(ro["Name"].StringValue);
// Child groups that are found. Use recursion to view them.
if (ro["__CLASS"].StringValue == "SMS_TaskSequence_Group")
{
this.RecurseTaskSequenceSteps(ro, indent + 3);
}
}
}
catch (SmsException e)
{
Console.WriteLine("Failed To enumerate task sequence items: " + e.Message);
throw;
}
}
Exempelmetoden har följande parametrar:
Parameter | Typ | Beskrivning |
---|---|---|
taskSequence |
-Hanterade: IResultObject – VBScript: SWbemObject |
En giltig aktivitetssekvens (SMS_TaskSequence ). Gruppen läggs till i den här aktivitetssekvensen. |
indent |
-Hanterade: Integer -Vbscript: Integer |
Indrag används för utdata från utrymmeskonsolen för underordnade grupper. |
Kompilera koden
Det här C#-exemplet kräver:
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