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


Импорт нового компьютера в Configuration Manager

Новый компьютер добавляется непосредственно в базу данных Configuration Manager путем вызова метода ImportMachineEntry в классе SMS_Site. Его можно использовать для развертывания операционных систем на компьютерах, которые еще не были обнаружены автоматически Configuration Manager.

Совет

Вы также можете использовать командлет PowerShell Import-CMComputerInformation .

Необходимо указать следующие сведения:

  • Имя компьютера NETBIOS

  • MAC-адрес

  • ИДЕНТИФИКАТОР SMBIOS

Примечание.

MAC-адрес должен быть для сетевого адаптера с драйвером в Среде предустановки Windows. MAC-адрес должен иметь формат двоеточия. Например, 00:00:00:00:00:00. Другие форматы не позволят клиенту получать политику.

Необходимо добавить в коллекцию только что импортированный компьютер. Это позволяет сразу же создавать объявления для развертывания операционных систем на компьютере.

Новый компьютер можно связать с компьютером-образцом. Дополнительные сведения см. в статье Создание связи между двумя компьютерами в Configuration Manager.

Добавление нового компьютера

  1. Настройте подключение к поставщику SMS. Дополнительные сведения см. в статье Основы поставщика SMS.

  2. Вызовите метод ImportMachineEntry в классе SMS_Site.

  3. Добавьте идентификатор ресурса, полученный из ImportMachineEntry, в коллекцию.

Пример

В следующем примере метод добавляет новый компьютер в Configuration Manager. Для импорта компьютера используется метод ImportMachineEntry в классе SMS_Site . Затем компьютер добавляется в настраиваемую коллекцию. Коллекция "Все системы".

Важно!

В предыдущей версии этого примера компьютер был добавлен в коллекцию "Все системы". Изменить встроенные коллекции больше нельзя, вместо этого используйте настраиваемую коллекцию.

Сведения о вызове примера кода см. в разделе Вызов фрагментов кода Configuration Manager.

Sub AddNewComputer (connection, netBiosName, smBiosGuid, macAddress)  

    Dim inParams  
    Dim outParams  
    Dim siteClass  
    Dim collection  
    Dim collectionRule  

    If (IsNull(smBiosGuid) = True) And (IsNull(macAddress) = True) Then  
        WScript.Echo "smBiosGuid or macAddress must be defined"  
        Exit Sub  
    End If       

    If IsNull(macAddress) = False Then  
        macAddress = Replace(macAddress,"-",":")  
    End If      

    ' Obtain an InParameters object specific  
    ' to the method.  

    Set siteClass = connection.Get("SMS_Site")  
    Set inParams = siteClass.Methods_("ImportMachineEntry"). _  
        inParameters.SpawnInstance_()  

    ' Add the input parameters.  
    inParams.Properties_.Item("MACAddress") =  macAddress  
    inParams.Properties_.Item("NetbiosName") =  netBiosName  
    inParams.Properties_.Item("OverwriteExistingRecord") =  False  
    inParams.Properties_.Item("SMBIOSGUID") =  smBiosGuid  

    ' Add the computer.  
    Set outParams = connection.ExecMethod("SMS_Site", "ImportMachineEntry", inParams)  

   ' Add the computer to the all systems collection.  
   set collection = connection.Get("SMS_Collection.CollectionID='ABC0000A'")  

   set collectionRule=connection.Get("SMS_CollectionRuleDirect").SpawnInstance_  

   collectionRule.ResourceClassName="SMS_R_System"  
   collectionRule.ResourceID= outParams.ResourceID  

   collection.AddMembershipRule collectionRule  

End Sub  
public int AddNewComputer(  
    WqlConnectionManager connection,   
    string netBiosName,   
    string smBiosGuid,   
    string macAddress)  
{  
    try  
    {  
        if (smBiosGuid == null && macAddress == null)  
        {  
            throw new ArgumentNullException("smBiosGuid or macAddress must be defined");  
        }  

        // Reformat macAddress to : separator.  
        if (string.IsNullOrEmpty(macAddress) == false)  
        {  
            macAddress = macAddress.Replace("-", ":");  
        }  

        // Create the computer.  
        Dictionary<string, object> inParams = new Dictionary<string, object>();  
        inParams.Add("NetbiosName", netBiosName);  
        inParams.Add("SMBIOSGUID", smBiosGuid);  
        inParams.Add("MACAddress", macAddress);  
        inParams.Add("OverwriteExistingRecord", false);  

        IResultObject outParams = connection.ExecuteMethod(  
            "SMS_Site",  
            "ImportMachineEntry",  
            inParams);  

        // Add to All System collection.  
        IResultObject collection = connection.GetInstance("SMS_Collection.collectionId='ABC0000A'");  
        IResultObject collectionRule = connection.CreateEmbeddedObjectInstance("SMS_CollectionRuleDirect");  
        collectionRule["ResourceClassName"].StringValue = "SMS_R_System";  
        collectionRule["ResourceID"].IntegerValue = outParams["ResourceID"].IntegerValue;  

        Dictionary<string, object> inParams2 = new Dictionary<string, object>();  
        inParams2.Add("collectionRule", collectionRule);  

        collection.ExecuteMethod("AddMembershipRule", inParams2);  

        return outParams["ResourceID"].IntegerValue;  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("failed to add the computer" + e.Message);  
        throw;  
    }  
}  

Метод примера имеет следующие параметры:

Параметр Тип Описание
connection -Управляемых: WqlConnectionManager
— VBScript: SWbemServices
— допустимое подключение к поставщику SMS.
netBiosName -Управляемых: String
-Vbscript: String
— netBIOS-имя компьютера.
smBiosGuid -Управляемых: String
-Vbscript: String
ИДЕНТИФИКАТОР GUID SMBIOS для компьютера.
MacAddress -Управляемых: String
-Vbscript: String
MAC-адрес компьютера в следующем формате: 00:00:00:00:00:00.

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

Пример C# имеет следующие требования к компиляции:

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

System;

System.Collections.Generic;

Майкрософт. ConfigurationManagement.ManagementProvider

Майкрософт. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

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

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

Безопасность .NET Framework

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

См. также

Метод ImportMachineEntry в классе SMS_Site
Сведения об управлении компьютером развертывания ОС