Como iniciar uma sincronização

O catálogo do Asset Intelligence pode ser atualizado manualmente, fora do agendamento normal de sincronização. Uma atualização manual é realizada usando o método RequestCatalogUpdate na classe WMI do servidor SMS_AIProxy.

Importante

Esse método só pode ser chamado uma vez em um período de 12 horas, as chamadas de método subsequentes não funcionarão.

Atualizar o catálogo do Asset Intelligence

  1. Configure uma conexão com o Provedor de SMS. Para obter mais informações, confira Os fundamentos do Provedor de SMS.

  2. Consulte o Provedor de SMS para a instância SMS_AIProxy na qual você deseja atualizar o catálogo.

  3. Chame o método requestCatalogUpdate da classe SMS_AIProxy para executar uma ação na coleção.

Exemplo

O método de exemplo a seguir executa a atualização no servidor fornecido.

Para obter informações sobre como chamar o código de exemplo, consulte Chamando Configuration Manager Snippets de Código.

Function InitiateSync(connection, serverName)
    On Error Resume Next    
    Dim classObj: Set classObj = connection.Get("SMS_AIProxy")    
    Dim inParams: Set inParams = classObj.Methods_("RequestCatalogUpdate").InParameters.SpawnInstance_()
    Dim outParams
    inParams.Properties_.Item("ProxyName") = serverName
    Set outParams = connection.ExecMethod("SMS_AIProxy", "RequestCatalogUpdate", inParams)
    If Err.Number <> 0 Then
        InitiateSync = False
    Else
        InitiateSync = True
    End If
    On Error Goto 0
End Function  
public void InitiateSync(WqlConnectionManager connection, string serverName)
{
    try
    {        
        Dictionary<string, object> inParams = new Dictionary<string, object>();
        IResultObject classObj = connection.GetClassObject("SMS_AIProxy");
        inParams.Add("ProxyName", serverName);
        Console.WriteLine("Requesting catalog update on server " + serverName);
        classObj.ExecuteMethod("RequestCatalogUpdate", inParams);    
    }    
    catch (SmsException ex)    
    {        
        Console.WriteLine(String.Format("Failed to request catalog update on server {0}. Error: {1}", serverName, ex.Message));           
        throw;    
    }
}  

O método de exemplo tem os seguintes parâmetros:

Parâmetro Tipo Descrição
conexão Gerenciado: WqlConnectionManager

VBScript: SWbemServices
Uma conexão válida com o provedor.
serverName Gerenciado: String

Vbscript: String
Nome do servidor para executar a atualização. Esse nome é mapeado para a ProxyName propriedade de uma SMS_AIProxy instância.

Compilando o código

O exemplo C# requer:

Namespaces

System

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programação robusta

Para obter mais informações sobre o tratamento de erros, consulte Sobre erros de Configuration Manager.

Segurança do .NET Framework

Para obter mais informações sobre como proteger aplicativos Configuration Manager, consulte Configuration Manager administração baseada em função.