Nachverfolgen von Betriebssystembereitstellungsmigrationen in Configuration Manager
Sie können Configuration Manager Betriebssystemmigrationen nachverfolgen, indem Sie die SMS_StateMigration-Klasse überprüfen.
Die StoreCreationDate
Eigenschaften , StoreDeletionDate
und StoreReleaseDate
können verwendet werden, um den aktuellen Status der Migration zu identifizieren.
So verfolgen Sie Zustandsmigrationen nach
Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.
Rufen Sie eine Instanz von SMS_StateMigration ab.
Berechnen Sie den aktuellen Migrationsstatus mithilfe der
StoreCreationDate
Eigenschaften ,StoreDeletionDate
undStoreReleaseDate
.
Beispiel
Die folgende Beispielmethode listet alle Migrationen auf und bestimmt, ob sie ausgeführt werden.
Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.
Sub MigrationState(connection)
Dim migrations
Dim migration
Dim inProgress
Dim zeroTime
zeroTime = "00000000000000.000000+***"
Set migrations = connection.ExecQuery( "Select * From SMS_StateMigration")
For Each migration in Migrations
inProgress=False
If migration.StoreCreationDate<>zeroTime Then
If migration.StoreReleaseDate = zeroTime Then
inProgress=True
Else If migration.StoreDeletionDate = zeroTime Then
inProgress = True
Else
inProgress = false
End If
End If
Else
inProgress=False
End If
WScript.StdOut.Write "Migration " + migration.MigrationID
If inProgress = True Then
Wscript.Echo " is in progress"
Else
WScript.Echo " is not in progress"
End If
Next
End Sub
public void MigrationState(WqlConnectionManager connection)
{
try
{
IResultObject migrations =
connection.QueryProcessor.ExecuteQuery("Select * from SMS_StateMigration");
string zeroTime = "00000000000000.000000+***";
foreach (IResultObject migration in migrations)
{
Boolean inProgress = false;
if (migration["StoreCreationDate"].DateTimeValue.Equals(zeroTime) == false)
{
if (migration["StoreReleaseDate"].DateTimeValue.Equals(zeroTime) == true)
{
inProgress = true;
}
else if (migration["StoreDeletionDate"].DateTimeValue.Equals(zeroTime) == true)
{
inProgress = true;
}
else
{
inProgress = false;
}
}
else
{
inProgress = false;
}
Console.Write("Migration " + migration["MigrationID"].StringValue);
if (inProgress)
{
Console.WriteLine(" is in progress");
}
else
{
Console.WriteLine(" is not in progress");
}
}
}
catch (SmsException e)
{
Console.WriteLine("Failed while displaying migration state: " + e.Message);
throw;
}
}
Die Beispielmethode verfügt über die folgenden Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
connection |
-Verwalteten: WqlConnectionManager – VBScript: SWbemServices |
Eine gültige Verbindung mit dem SMS-Anbieter. |
Kompilieren des Codes
Das C#-Beispiel hat die folgenden Kompilierungsanforderungen:
Namespaces
System
System.Collections.Generic
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: 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
Informationen zur Computerverwaltung für die Betriebssystembereitstellung