Auflisten der Schritte in einer Tasksequenz für die Betriebssystembereitstellung
Sie listen eine Tasksequenz für die Betriebssystembereitstellung in Configuration Manager auf, indem Sie eine rekursive Methode verwenden, um die Tasksequenzschritte und -gruppen zu durchsuchen.
So listen Sie die Schritte in einer Tasksequenz auf
Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.
Rufen Sie eine gültige Tasksequenz SMS_TaskSequence -Objekt ab. Weitere Informationen finden Sie unter Erstellen einer Tasksequenz für die Betriebssystembereitstellung.
Führen Sie die Schritte auf, um alle Aktionsnamen (SMS_TaskSequence_Action) anzuzeigen. Verwenden Sie Rekursion, um auf gefundene Gruppen (SMS_TaskSequence_Group) zuzugreifen und deren Aktionen anzuzeigen.
Beispiel
Im folgenden Beispiel werden die Aktionen und Gruppen innerhalb einer Tasksequenz angezeigt.
Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.
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;
}
}
Die Beispielmethode verfügt über die folgenden Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
taskSequence |
-Verwalteten: IResultObject – VBScript: SWbemObject |
Eine gültige Tasksequenz (SMS_TaskSequence ). Die Gruppe wird dieser Tasksequenz hinzugefügt. |
indent |
-Verwalteten: Integer -Vbscript: Integer |
Einzug wird verwendet, um die Konsolenausgabe für untergeordnete Gruppen zu belegen. |
Kompilieren des Codes
Für dieses C#-Beispiel ist Folgendes erforderlich:
Namespaces
System
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robuste Programmierung
Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager Fehlern.
.NET Framework-Sicherheit
Weitere Informationen zum Schützen Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.
Siehe auch
Objektübersicht: Hinzufügen einer Tasksequenzaktion für die Betriebssystembereitstellung
Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von verwaltetem Code
Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von WMI
Übersicht über Aufgabensequenzen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für