Come tenere traccia delle migrazioni della distribuzione del sistema operativo in Configuration Manager
È possibile tenere traccia Configuration Manager migrazioni del sistema operativo controllando la classe SMS_StateMigration.
Le StoreCreationDate
proprietà , StoreDeletionDate
e StoreReleaseDate
possono essere usate per identificare lo stato corrente della migrazione.
Per tenere traccia delle migrazioni di stato
Configurare una connessione al provider SMS. Per altre informazioni, vedere Nozioni fondamentali sul provider SMS.
Ottenere un'istanza di SMS_StateMigration.
Calcolare lo stato di migrazione corrente usando le
StoreCreationDate
proprietà ,StoreDeletionDate
eStoreReleaseDate
.
Esempio
Il metodo di esempio seguente enumera tutte le migrazioni e determina se sono in corso.
Per informazioni sulla chiamata del codice di esempio, vedere Chiamata di frammenti di codice Configuration Manager.
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;
}
}
Il metodo di esempio include i parametri seguenti:
Parametro | Tipo | Descrizione |
---|---|---|
connection |
-Gestito: WqlConnectionManager - VBScript: SWbemServices |
Connessione valida al provider SMS. |
Compilazione del codice
L'esempio C# presenta i requisiti di compilazione seguenti:
Namespaces
Sistema
System.collections.generic
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Programmazione efficiente
Per altre informazioni sulla gestione degli errori, vedere Informazioni sugli errori di Configuration Manager.
Sicurezza di .NET Framework
Per altre informazioni sulla protezione delle applicazioni Configuration Manager, vedere Configuration Manager'amministrazione basata sui ruoli.
Vedere anche
Panoramica degli oggettiCome connettersi a un provider SMS in Configuration Manager tramite codice gestito
Come connettersi a un provider SMS in Configuration Manager tramite WMI
Informazioni sulla gestione dei computer di distribuzione del sistema operativo