Udostępnij za pośrednictwem


Jak zaimportować nowy komputer do Configuration Manager

Nowy komputer można dodać bezpośrednio do bazy danych Configuration Manager, wywołując metodę ImportMachineEntry w klasie SMS_Site. Może służyć do wdrażania systemów operacyjnych na komputerach, które nie zostały jeszcze odnalezione automatycznie przez Configuration Manager.

Porada

Możesz również użyć polecenia cmdlet import-CMComputerInformation programu PowerShell.

Należy podać następujące informacje:

  • Nazwa komputera NETBIOS

  • Adres MAC

  • SMBIOS GUID

Uwaga

Adres MAC musi być przeznaczony dla karty sieciowej, która ma sterownik w systemie Windows PE. Adres MAC musi mieć format dwukropka. Na przykład 00:00:00:00:00:00. Inne formaty uniemożliwią klientowi odbieranie zasad.

Należy dodać nowo zaimportowany komputer do kolekcji. Umożliwia to natychmiastowe tworzenie anonsów do wdrażania systemów operacyjnych na komputerze.

Nowy komputer można skojarzyć z komputerem odniesienia. Aby uzyskać więcej informacji, zobacz How to Create an Association Between Two Computers in Configuration Manager (Jak utworzyć skojarzenie między dwoma komputerami w Configuration Manager).

Aby dodać nowy komputer

  1. Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy programu SMS.

  2. Wywołaj metodę ImportMachineEntry w klasie SMS_Site.

  3. Dodaj identyfikator zasobu pobrany z usługi ImportMachineEntry do kolekcji.

Przykład

Poniższa przykładowa metoda dodaje nowy komputer do Configuration Manager. Metoda ImportMachineEntry klasy SMS_Site służy do importowania komputera. Następnie komputer jest dodawany do kolekcji niestandardowej. Kolekcja "Wszystkie systemy".

Ważna

W poprzedniej wersji tego przykładu komputer został dodany do kolekcji "Wszystkie systemy". Nie można już modyfikować wbudowanych kolekcji, zamiast tego użyj kolekcji niestandardowej.

Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu 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;  
    }  
}  

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

Parametr Wpisać Opis
connection -Zarządzane: WqlConnectionManager
- VBScript: SWbemServices
- Prawidłowe połączenie z dostawcą programu SMS.
netBiosName -Zarządzane: String
-Vbscript: String
— nazwa netbios komputera.
smBiosGuid -Zarządzane: String
-Vbscript: String
Identyfikator GUID SMBIOS dla komputera.
MacAddress -Zarządzane: String
-Vbscript: String
Adres MAC komputera w następującym formacie: 00:00:00:00:00:00.

Kompilowanie kodu

Przykład języka C# ma następujące wymagania dotyczące kompilacji:

Obszary nazw

System

System.collections.generic

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Zestawu

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

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ż

ImportMachineEntry, metoda w klasie SMS_Site
Informacje o zarządzaniu komputerem wdrożenia systemu operacyjnego