Compartilhar via


Como importar um novo computador para Configuration Manager

Você adiciona um novo computador diretamente ao banco de dados Configuration Manager chamando o Método ImportMachineEntry na classe SMS_Site. Isso pode ser usado para implantar sistemas operacionais em computadores que ainda não foram descobertos automaticamente por Configuration Manager.

Dica

Você também pode usar o cmdlet Import-CMComputerInformation PowerShell.

Você deve fornecer as seguintes informações:

  • Nome do computador NETBIOS

  • Endereço MAC

  • SMBIOS GUID

Observação

O endereço MAC deve ser para um adaptador de rede que tenha um driver no Windows PE. O endereço MAC deve estar no formato colon. Por exemplo, 00:00:00:00:00:00. Outros formatos impedirão que o cliente receba a política.

Você deve adicionar um computador recém-importado a uma coleção. Isso permite que você crie anúncios imediatamente para implantar sistemas operacionais no computador.

Você pode associar um novo computador a um computador de referência. Para obter mais informações, consulte Como criar uma associação entre dois computadores no Configuration Manager.

Para adicionar um novo computador

  1. Configure uma conexão com o Provedor de SMS. Para obter mais informações, confira Os fundamentos do Provedor de SMS.

  2. Chame o Método ImportMachineEntry na classe SMS_Site.

  3. Adicione o identificador de recurso que você obtém de ImportMachineEntry a uma coleção.

Exemplo

O método de exemplo a seguir adiciona um novo computador a Configuration Manager. O Método ImportMachineEntry na classe SMS_Site é usado para importar o computador. Em seguida, o computador é adicionado a uma coleção personalizada. Coleção "Todos os Sistemas".

Importante

Na versão anterior deste exemplo, o computador foi adicionado à coleção "Todos os Sistemas". Não é mais possível modificar as coleções internas, usar uma coleção personalizada.

Para obter informações sobre como chamar o código de exemplo, consulte Chamando Configuration Manager Snippets de Código.

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

O método de exemplo tem os seguintes parâmetros:

Parâmetro Tipo Descrição
connection -Gerenciado: WqlConnectionManager
- VBScript: SWbemServices
- Uma conexão válida com o Provedor de SMS.
netBiosName -Gerenciado: String
-Vbscript: String
- O nome NETBIOS do computador.
smBiosGuid -Gerenciado: String
-Vbscript: String
O GUID do SMBIOS para o computador.
MacAddress -Gerenciado: String
-Vbscript: String
O endereço MAC do computador no seguinte formato: 00:00:00:00:00:00.

Compilando o código

O exemplo C# tem os seguintes requisitos de compilação:

Namespaces

System

System.Collections.Generic

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programação robusta

Para obter mais informações sobre o tratamento de erros, consulte Sobre erros de Configuration Manager.

Segurança do .NET Framework

Para obter mais informações sobre como proteger aplicativos Configuration Manager, consulte Configuration Manager administração baseada em função.

Confira também

Método ImportMachineEntry na classe SMS_Site
Sobre o gerenciamento de computador de implantação do sistema operacional