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
Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Notions de base du fournisseur SMS.
Appelez la méthode ImportMachineEntry dans class SMS_Site.
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