Freigeben über


Importieren eines neuen Computers in Configuration Manager

Sie fügen der Configuration Manager-Datenbank einen neuen Computer direkt hinzu, indem Sie die ImportMachineEntry-Methode in Class SMS_Site aufrufen. Dies kann verwendet werden, um Betriebssysteme auf Computern bereitzustellen, die noch nicht automatisch von Configuration Manager erkannt wurden.

Tipp

Sie können auch das PowerShell-Cmdlet Import-CMComputerInformation verwenden.

Sie müssen die folgenden Informationen angeben:

  • NETBIOS-Computername

  • MAC-Adresse

  • SMBIOS GUID

Hinweis

Die MAC-Adresse muss für einen Netzwerkadapter mit einem Treiber in Windows PE sein. Die MAC-Adresse muss im Doppelpunktformat vorliegen. Beispiel: 00:00:00:00:00:00. Andere Formate verhindern, dass der Client richtlinien empfängt.

Sie sollten einer Sammlung einen neu importierten Computer hinzufügen. Auf diese Weise können Sie sofort Ankündigungen für die Bereitstellung von Betriebssystemen auf dem Computer erstellen.

Sie können einen neuen Computer einem Referenzcomputer zuordnen. Weitere Informationen finden Sie unter Erstellen einer Zuordnung zwischen zwei Computern in Configuration Manager.

So fügen Sie einen neuen Computer hinzu

  1. Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.

  2. Rufen Sie die ImportMachineEntry-Methode in Class SMS_Site auf.

  3. Fügen Sie den Ressourcenbezeichner, den Sie aus ImportMachineEntry erhalten, einer Sammlung hinzu.

Beispiel

Die folgende Beispielmethode fügt Configuration Manager einen neuen Computer hinzu. Die ImportMachineEntry-Methode in class SMS_Site wird verwendet, um den Computer zu importieren. Anschließend wird der Computer einer benutzerdefinierten Sammlung hinzugefügt. Sammlung "All Systems".

Wichtig

In einer früheren Version dieses Beispiels wurde der Computer der Sammlung "Alle Systeme" hinzugefügt. Es ist nicht mehr möglich, die integrierten Sammlungen zu ändern, sondern stattdessen eine benutzerdefinierte Auflistung zu verwenden.

Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.

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;  
    }  
}  

Die Beispielmethode verfügt über die folgenden Parameter:

Parameter Typ Beschreibung
connection -Verwalteten: WqlConnectionManager
– VBScript: SWbemServices
– Eine gültige Verbindung mit dem SMS-Anbieter.
netBiosName -Verwalteten: String
-Vbscript: String
– Der NETBIOS-Computername.
smBiosGuid -Verwalteten: String
-Vbscript: String
Die SMBIOS-GUID für den Computer.
MacAddress -Verwalteten: String
-Vbscript: String
Die MAC-Adresse für den Computer im folgenden Format: 00:00:00:00:00:00.

Kompilieren des Codes

Das C#-Beispiel hat die folgenden Kompilierungsanforderungen:

Namespaces

System

System.Collections.Generic

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robuste Programmierung

Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager Fehlern.

.NET Framework-Sicherheit

Weitere Informationen zum Schützen Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.

Siehe auch

ImportMachineEntry-Methode in der Klasse SMS_Site
Informationen zur Computerverwaltung für die Betriebssystembereitstellung