Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |
-Gehandhabt: IResultObject– VBScript: SWbemObject |
Eine gültige Tasksequenz (SMS_TaskSequence). Die Gruppe wird dieser Tasksequenz hinzugefügt. |
indent |
-Gehandhabt: 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übersichtSo fügen Sie eine Tasksequenzaktion für die Betriebssystembereitstellung hinzu: Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von verwaltetem CodeHerstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe der WMI-Tasksequenzübersicht