Udostępnij za pośrednictwem


Jak skonfigurować odnajdywanie pulsu

W Configuration Manager skonfigurujesz ustawienia odnajdywania pulsu, modyfikując wymagane ustawienia pliku kontroli lokacji.

Aby skonfigurować odnajdywanie pulsu

  1. Skonfiguruj połączenie z dostawcą programu SMS.

  2. Nawiązywanie połączenia z sekcją Odnajdywanie pulsu w pliku kontroli lokacji SMS_SCI_Component przy użyciu klasy .

  3. Przeprowadź pętlę przez tablicę dostępnych właściwości, wprowadzając zmiany zgodnie z potrzebami.

  4. Zatwierdź zmiany w pliku kontroli lokacji.

Przykład

W poniższym przykładzie ustawienia odnajdywania pulsu SMS_SCI_Component są ustawiane przy użyciu klasy w celu nawiązania połączenia z plikiem kontroli lokacji i zmiany właściwości.

Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu Configuration Manager.


Sub ConfigureHeartbeatDiscoverySettings1(swbemServices,                       _  
                                         swbemContext,                        _  
                                         siteCode,                            _  
                                         serverName,                          _  
                                         newHeartbeatSiteControlFileSchedule)  

    ' Load site control file and get the SMS_SITE_CONTROL_MANAGER section.  
    swbemServices.ExecMethod "SMS_SiteControlFile.Filetype=1,Sitecode=""" & siteCode & """", "Refresh", , , swbemContext                     

    Query = "SELECT * FROM SMS_SCI_Component " &                         _  
    "WHERE ItemName = 'SMS_SITE_CONTROL_MANAGER|" & serverName & "' " &  _     
    "AND SiteCode = '" & siteCode & "'"  

    ' Get the SMS Software Update Point properties.  
    Set SCIComponentSet = swbemServices.ExecQuery(Query, ,wbemFlagForwardOnly Or wbemFlagReturnImmediately, swbemContext)  

    ' Only one instance is returned from the query.  
    For Each SCIComponent In SCIComponentSet  

        ' Display the server name.  
        wscript.echo "Server: " & SCIComponent.Name        

        ' Loop through the array of embedded SMS_EmbeddedProperty instances.  
        For Each vProperty In SCIComponent.Props  

            ' Setting: Heartbeat Site Control File Schedule.  
            If vProperty.PropertyName = "Heartbeat Site Control File Schedule" Then  
                wscript.echo " "  
                wscript.echo vProperty.PropertyName                 
                wscript.echo "Current value " &  vProperty.Value1     

                'Modify the value.  
                vProperty.Value1 = newHeartbeatSiteControlFileSchedule  
                wscript.echo "New value " & newHeartbeatSiteControlFileSchedule  
            End If            

         Next  

         ' Update the component in your copy of the site control file. Get the path  
         ' to the updated object, which could be used later to retrieve the instance.  
          Set SCICompPath = SCIComponent.Put_(wbemChangeFlagUpdateOnly, swbemContext)  

    Next  

    ' Commit the change to the actual site control file.  
    Set InParams = swbemServices.Get("SMS_SiteControlFile").Methods_("CommitSCF").InParameters.SpawnInstance_  
    InParams.SiteCode = siteCode  
    swbemServices.ExecMethod "SMS_SiteControlFile", "CommitSCF", InParams, , swbemContext  

End Sub  

' SEPARATE EXAMPLE TO ENABLE HEARTBEAT DISCOVERY ON THE CLIENT  
Sub ConfigureHeartbeatDiscoverySettings2(swbemServices,                       _  
                                         swbemContext,                        _  
                                         siteCode,                            _  
                                         enableDisableHeartbeatDDR)  

    ' Load site control file and get the SMS_SCI_ClientConfig section.  
    swbemServices.ExecMethod "SMS_SiteControlFile.Filetype=1,Sitecode=""" & siteCode & """", "Refresh", , , swbemContext  

    Query = "SELECT * FROM SMS_SCI_ClientConfig " &   _  
    "WHERE ItemName  = 'Client Properties'" & _  
    "AND SiteCode = '" & siteCode & "'"   

     Set SCIComponentSet = swbemServices.ExecQuery(Query, ,wbemFlagForwardOnly Or wbemFlagReturnImmediately, swbemContext)     

    ' Only one instance is returned from the query.  
    For Each SCIComponent In SCIComponentSet  

        'Loop through the array of embedded SMS_EmbeddedProperty instances.  
        For Each vProperty In SCIComponent.Props  

            ' Setting: Enable Heartbeat DDR  
            If vProperty.PropertyName = "Enable Heartbeat DDR" Then  
                wscript.echo " "  
                wscript.echo vProperty.PropertyName  
                wscript.echo "Current value " &  vProperty.Value                 

                'Modify the value.  
                vProperty.Value = enableDisableHeartbeatDDR  
                wscript.echo "New value " & enableDisableHeartbeatDDR  
            End If             

        Next     

        ' Update the component in your copy of the site control file. Get the path  
        ' to the updated object, which could be used later to retrieve the instance.  
        Set SCICompPath = SCIComponent.Put_(wbemChangeFlagUpdateOnly, swbemContext)  

    Next  

    ' Commit the change to the actual site control file.  
    Set InParams = swbemServices.Get("SMS_SiteControlFile").Methods_("CommitSCF").InParameters.SpawnInstance_  
    InParams.SiteCode = siteCode  
    swbemServices.ExecMethod "SMS_SiteControlFile", "CommitSCF", InParams, , swbemContext  

End Sub  


public void ConfigureHeartbeatDiscoverySettings(WqlConnectionManager connection,  
                                                string siteCode,  
                                                string serverName,  
                                                string newHeartbeatSiteControlFileSchedule,  
                                                string newEnableDisableHeartbeatDDR)  
{  

    try  
    {  
    // Change the Heartbeat Site Control File Schedule value.  

        // Connect to SMS_SITE_CONTROL_MANAGER section of the site control file.  
         IResultObject siteDefinition = connection.GetInstance(@"SMS_SCI_Component.FileType=2,ItemType='Component',SiteCode='" + siteCode + "',ItemName='SMS_SITE_CONTROL_MANAGER|" + serverName + "'");  

        // Temporary copy of the embedded properties.  
        Dictionary<string, IResultObject> embeddedProperties = siteDefinition.EmbeddedProperties;  

        foreach (KeyValuePair<string, IResultObject> kvp in siteDefinition.EmbeddedProperties)  
        {                                         
            // Property: Heartbeat Site Control File Schedule  
            if (kvp.Value.PropertyList["PropertyName"] == "Heartbeat Site Control File Schedule")  
            {  
                Console.WriteLine();  
                Console.WriteLine(kvp.Value.PropertyList["PropertyName"]);  
                Console.WriteLine("Current value: " + embeddedProperties["Heartbeat Site Control File Schedule"]["Value1"].StringValue);  

                embeddedProperties["Heartbeat Site Control File Schedule"]["Value1"].StringValue = newHeartbeatSiteControlFileSchedule;  
                Console.WriteLine("New value    : " + newHeartbeatSiteControlFileSchedule);  
            }  
        }  

        // Store the settings that have changed.  
        siteDefinition.EmbeddedProperties = embeddedProperties;  

        // Save the settings.   
        siteDefinition.Put();  

    }  
    catch (SmsException ex)  
    {  
        Console.WriteLine();  
        Console.WriteLine("Failed. Error: " + ex.InnerException.Message);  
    }  

    try  
    {  
    // Change the Enable Heartbeat DDR value.  

        // Connect to SMS_SCI_ClientConfig section of the site control file.  
    IResultObject siteDefinition = connection.GetInstance(@"SMS_SCI_ClientConfig.FileType=2,ItemType='Client Configuration',SiteCode='" + siteCode + "',ItemName='Client Properties'");  

        // Create temporary working copy of embedded properties.  
        Dictionary<string, IResultObject> embeddedProperties = siteDefinition.EmbeddedProperties;  

        foreach (KeyValuePair<string, IResultObject> kvp in siteDefinition.EmbeddedProperties)  
        {  
            // Setting: Enable Heartbeat DDR  
            if (kvp.Value.PropertyList["PropertyName"] == "Enable Heartbeat DDR")  
            {  
                Console.WriteLine();  
                Console.WriteLine(kvp.Value.PropertyList["PropertyName"]);  
                Console.WriteLine("Current value: " + kvp.Value.PropertyList["Value"]);  

                // Change value using the newEnableDisableHeartbeatDDR value passed in.   
                embeddedProperties["Enable Heartbeat DDR"]["Value"].StringValue = newEnableDisableHeartbeatDDR;  
                Console.WriteLine("New value    : " + newEnableDisableHeartbeatDDR);  
            }                      
        }  

        // Store the settings that have changed.  
        siteDefinition.EmbeddedProperties = embeddedProperties;  

        // Save the settings.   
        siteDefinition.Put();  
    }  

    catch (SmsException ex)  
    {  
        Console.WriteLine("Failed. Error: " + ex.InnerException.Message);  
        throw;  
    }  

}  

Przykładowa metoda ma następujące parametry:

Parametr Wpisać Opis
- connection
- swbemServices
-Zarządzane: WqlConnectionManager
- VBScript: SWbemServices
Prawidłowe połączenie z dostawcą programu SMS.
swbemContext -Vbscript: SWbemContext Prawidłowy obiekt kontekstu. Aby uzyskać więcej informacji, zobacz How to Add a Configuration Manager Context Qualifier by Using WMI (Jak dodać kwalifikator kontekstu Configuration Manager przy użyciu usługi WMI).
siteCode -Zarządzane: String
-Vbscript: String
Kod witryny.
serverName -Zarządzane: String
-Vbscript: String
Nazwa serwera.
newHeartbeatSiteControlFileSchedule -Zarządzane: String
-Vbscript: String
Harmonogram określający, jak często klient będzie generował rekordy odnajdywania danych pulsu (DDR).
- newEnableDisableHeartbeatDDR
- enableDisableHeartbeatDDR
-Zarządzane: String
-Vbscript: String
Wartość umożliwiająca włączenie lub wyłączenie pulsu DDR.

Wyłączone — 0

Włączone — 1

Kompilowanie kodu

Ten przykład języka C# wymaga:

Obszary nazw

System

System.collections.generic

System.text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Zestawu

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

Niezawodne programowanie

Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach Configuration Manager.

zabezpieczenia .NET Framework

Aby uzyskać więcej informacji na temat zabezpieczania aplikacji Configuration Manager, zobacz Configuration Manager administracja oparta na rolach.

Zobacz też

Informacje o pliku kontrolki lokacji Configuration Manager
Jak odczytywać i zapisywać w pliku kontroli lokacji Configuration Manager przy użyciu kodu zarządzanego
Jak odczytywać i zapisywać w pliku kontroli lokacji Configuration Manager przy użyciu usługi WMI
SMS_SCI_Component Server WMI Class
Informacje o harmonogramachJak Twórca token harmonogramu