Partage via


Comment importer un nouvel ordinateur dans Configuration Manager

Vous ajoutez un nouvel ordinateur directement à la base de données Configuration Manager en appelant la méthode ImportMachineEntry dans class SMS_Site. Cela peut être utilisé pour déployer des systèmes d’exploitation sur des ordinateurs qui n’ont pas encore été détectés automatiquement par Configuration Manager.

Conseil

Vous pouvez également utiliser l’applet de commande PowerShell Import-CMComputerInformation .

Vous devez fournir les informations suivantes :

  • Nom de l’ordinateur NETBIOS

  • Adresse MAC

  • SMBIOS GUID

Remarque

L’adresse MAC doit être pour une carte réseau dotée d’un pilote dans Windows PE. L’adresse MAC doit être au format deux-points. Par exemple : 00:00:00:00:00:00. D’autres formats empêchent le client de recevoir la stratégie.

Vous devez ajouter un ordinateur nouvellement importé à un regroupement. Cela vous permet de créer immédiatement des publicités pour le déploiement de systèmes d’exploitation sur l’ordinateur.

Vous pouvez associer un nouvel ordinateur à un ordinateur de référence. Pour plus d’informations, consultez Comment créer une association entre deux ordinateurs dans Configuration Manager.

Pour ajouter un nouvel ordinateur

  1. Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Notions de base du fournisseur SMS.

  2. Appelez la méthode ImportMachineEntry dans class SMS_Site.

  3. Ajoutez l’identificateur de ressource que vous obtenez d’ImportMachineEntry à une collection.

Exemple

L’exemple de méthode suivant ajoute un nouvel ordinateur à Configuration Manager. La méthode ImportMachineEntry de la classe SMS_Site est utilisée pour importer l’ordinateur. Ensuite, l’ordinateur est ajouté à un regroupement personnalisé. Collection « Tous les systèmes ».

Importante

Dans la version précédente de cet exemple, l’ordinateur a été ajouté au regroupement « Tous les systèmes ». Il n’est plus possible de modifier les collections intégrées. Utilisez une collection personnalisée à la place.

Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code 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;  
    }  
}  

L’exemple de méthode a les paramètres suivants :

Paramètre Type Description
connection -Géré: WqlConnectionManager
- VBScript : SWbemServices
- Connexion valide au fournisseur SMS.
netBiosName -Géré: String
-Vbscript: String
- Nom NETBIOS de l’ordinateur.
smBiosGuid -Géré: String
-Vbscript: String
GUID SMBIOS de l’ordinateur.
MacAddress -Géré: String
-Vbscript: String
Adresse MAC de l’ordinateur au format suivant : 00:00:00:00:00:00.

Compilation du code

L’exemple C# présente les exigences de compilation suivantes :

Espaces de noms

Système

System.Collections.Generic

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programmation robuste

Pour plus d’informations sur la gestion des erreurs, consultez À propos des erreurs Configuration Manager.

Sécurité de .NET Framework

Pour plus d’informations sur la sécurisation des applications Configuration Manager, consultez Configuration Manager’administration basée sur les rôles.

Voir aussi

Méthode ImportMachineEntry dans la classe SMS_Site
À propos de la gestion des ordinateurs de déploiement de système d’exploitation