Compartir a través de


Cómo importar un nuevo equipo en Configuration Manager

Agregue un nuevo equipo directamente a la base de datos Configuration Manager llamando al método ImportMachineEntry en la clase SMS_Site. Esto se puede usar para implementar sistemas operativos en equipos que aún no se han detectado automáticamente por Configuration Manager.

Sugerencia

También puede usar el cmdlet Import-CMComputerInformation de PowerShell.

Debe proporcionar la siguiente información:

  • Nombre del equipo NETBIOS

  • Dirección MAC

  • SMBIOS GUID

Nota:

La dirección MAC debe ser para un adaptador de red que tenga un controlador en Windows PE. La dirección MAC debe estar en formato de dos puntos. Por ejemplo, 00:00:00:00:00:00. Otros formatos impedirán que el cliente reciba la directiva.

Debe agregar un equipo recién importado a una colección. Esto le permite crear inmediatamente anuncios para implementar sistemas operativos en el equipo.

Puede asociar un nuevo equipo a un equipo de referencia. Para obtener más información, vea Cómo crear una asociación entre dos equipos en Configuration Manager.

Para agregar un nuevo equipo

  1. Configure una conexión con el proveedor de SMS. Para obtener más información, consulte Aspectos básicos del proveedor de SMS.

  2. Llame al método ImportMachineEntry en la clase SMS_Site.

  3. Agregue el identificador de recurso que obtiene de ImportMachineEntry a una colección.

Ejemplo

El siguiente método de ejemplo agrega un nuevo equipo a Configuration Manager. El método ImportMachineEntry de la clase SMS_Site se usa para importar el equipo. A continuación, el equipo se agrega a una colección personalizada. Colección "Todos los sistemas".

Importante

En la versión anterior de este ejemplo, el equipo se agregó a la colección "Todos los sistemas". Ya no es posible modificar las colecciones integradas, sino usar una colección personalizada.

Para obtener información sobre cómo llamar al código de ejemplo, vea Llamar a fragmentos de código de 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;  
    }  
}  

El método de ejemplo tiene los parámetros siguientes:

Parámetro Tipo Descripción
connection -Administrado: WqlConnectionManager
- VBScript: SWbemServices
- Una conexión válida al proveedor de SMS.
netBiosName -Administrado: String
-Vbscript: String
- Nombre NETBIOS del equipo.
smBiosGuid -Administrado: String
-Vbscript: String
GUID de SMBIOS para el equipo.
MacAddress -Administrado: String
-Vbscript: String
La dirección MAC del equipo en el formato siguiente: 00:00:00:00:00:00.

Compilar el código

El ejemplo de C# tiene los siguientes requisitos de compilación:

Espacios de nombres

System

System.Collections.Generic

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Ensamblado

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programación sólida

Para obtener más información sobre el control de errores, consulte Acerca de los errores de Configuration Manager.

Seguridad de .NET Framework

Para obtener más información sobre la protección de aplicaciones Configuration Manager, consulte Configuration Manager administración basada en roles.

Consulta también

Método ImportMachineEntry en la clase SMS_Site
Acerca de la administración de equipos de implementación del sistema operativo