Поделиться через


Получение значения уникального идентификатора для клиента

При обнаружении данных системного ресурса для клиента в Configuration Manager необходимо указать уникальное значение идентификатора клиента в записи обнаружения данных (DDR), например:

DDRAddString("SMS Unique Identifier",
             "GUID:12345678-1234-1234-1234-123456789012", 64,
             ADDPROP_GUID | ADDPROP_KEY);

Уникальный идентификатор клиента можно найти в разделе Инструментарий управления Windows (WMI) по адресу:

root\ccm:CCM_Client=@:ClientId

Procedures

Определение уникального идентификатора клиента в WMI

  1. Подключитесь к пространству имен CCM (root\ccm).

  2. CCM_Client Загрузите класс .

  3. Перечисление объектов в CCM_Client классе и отображение уникального идентификатора (ClientId).

Пример

Описание

В следующем примере метода показано, как получить уникальный идентификатор клиента из WMI путем подключения к пространству имен CCM, загрузки CCM_Client класса и получения свойства ClientId.

Важно!

В следующем примере C# требуется пространство имен System.Management.

Сведения о вызове примера кода см. в статье Вызов метода класса объектов Configuration Manager с помощью WMI.

Код


Sub GetClientUniqueID()

    ' Get a connection to the root\ccm namespace on the local system.
    Set objWMIService = GetObject("winmgmts:\\.\root\ccm")

    ' Get all objects in the CCM_Client class.
    set allCCMClientObjects = objWMIService.ExecQuery("Select * from CCM_Client")

    ' Loop through the available objects (only one) and display ClientId value.
    For Each eachCCMClientObject in allCCMClientObjects
       wscript.echo "ClientId (GUID): " & eachCCMClientObject.ClientId
    Next

End Sub

public void GetClientUniqueID()
{
    try
    {
        // Define the scope (namespace) to connect to.
        ManagementScope inventoryAgentScope = new ManagementScope(@"root\ccm");

        // Load the class to work with (CCM_Client).
        ManagementClass inventoryClass = new ManagementClass(inventoryAgentScope.Path.Path, "CCM_Client", null);

        // Query the class for the objects (create query, create searcher object, execute query).
        ObjectQuery query = new ObjectQuery("SELECT * FROM CCM_Client");
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(inventoryAgentScope, query);
        ManagementObjectCollection queryResults = searcher.Get();

        // Loop through the available objects (only one) and display the ClientId value.

        foreach (ManagementObject result in queryResults)
        {
            Console.WriteLine("ClientId (GUID): " + result["ClientId"]);
        }
    }

    catch (System.Management.ManagementException ex)
    {
        Console.WriteLine("Failed to get client ID (GUID). Error: " + ex.Message);
        throw;
    }
}

Comments

Компиляция программы

Для этого примера на C# требуется следующее:

Пространства имен

System.Management

Надежное программирование

Дополнительные сведения об обработке ошибок см. в разделе Сведения об ошибках Configuration Manager.

Безопасность

Дополнительные сведения о защите приложений Configuration Manager см. в статье Configuration Manager администрирование на основе ролей.

См. также

Вызов метода класса WMI с помощью System.Management