Como Importar um Novo Computador para o Configuration Manager
Adicione um novo computador diretamente à base de dados do Gestor de Configuração, chamando o Método DeIntóitico ImportMachine em classe SMS_Site. Isto pode ser usado para implantar sistemas operativos em computadores que ainda não foram descobertos automaticamente pelo Gestor de Configuração.
Dica
Também pode utilizar o cmdlet De Informação de Importação-CMComputerInformation.
Deve fornecer as seguintes informações:
Nome do computador NETBIOS
Endereço MAC
SMBIOS GUID
Nota
O endereço MAC deve ser para um adaptador de rede que tenha um controlador em Windows PE. O endereço MAC deve estar no formato do cólon. Por exemplo, 00:00:00:00:00:00
. Outros formatos impedirão o cliente de receber a política.
Deve adicionar um computador recém-importado a uma coleção. Isto permite-lhe criar imediatamente anúncios para a implementação de sistemas operativos no computador.
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 Gestor de Configuração.
Para adicionar um novo computador
Configurar uma ligação com o Fornecedor DE SMS. Para mais informações, consulte os fundamentos do Fornecedor de SMS.
Chame o Método De Inquérito de ImportMineEntry em SMS_Site de classe.
Adicione o identificador de recursos que obtém da ImportMachineEntry a uma coleção.
Exemplo
O método de exemplo a seguir adiciona um novo computador ao Gestor de Configuração. O Método De Informação de ImportE na classe SMS_Site é utilizado 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". Já não é possível modificar as coleções incorporadas, utilizar uma coleção personalizada.
Para obter informações sobre a chamada do código de amostra, consulte o Código de Identificação do Gestor de Chamadas.
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 exemplo tem os seguintes parâmetros:
Parâmetro | Tipo | Description |
---|---|---|
connection |
- Gerido: WqlConnectionManager - VBScript: SWbemServices |
- Uma ligação válida ao Fornecedor de SMS. |
netBiosName |
- Gerido: String - VBScript: String |
- O nome NETBIOS do computador. |
smBiosGuid |
- Gerido: String - VBScript: String |
O SMBIOS GUID para o computador. |
MacAddress |
- Gerido: String - VBScript: String |
O endereço MAC para o computador no seguinte formato: 00:00:00:00:00:00 . |
A Compilar o Código
O exemplo C# tem os seguintes requisitos de compilação:
Espaços de nomes
Sistema
System.Collections.Generic
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assemblagem
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Programação Robusta
Para obter mais informações sobre o tratamento de erros, consulte Sobre erros do Gestor de Configuração.
Segurança do .NET Framework
Para obter mais informações sobre a segurança das aplicações do Gestor de Configuração, consulte a administração baseada em funções do Gestor de Configuração.
Consulte também
Método De Inquérito De ImportMineEntry em SMS_Site de classe
Sobre a gestão de computadores de implementação do SO