Importieren eines neuen Computers in Configuration Manager
Sie fügen der Configuration Manager-Datenbank einen neuen Computer direkt hinzu, indem Sie die ImportMachineEntry-Methode in Class SMS_Site aufrufen. Dies kann verwendet werden, um Betriebssysteme auf Computern bereitzustellen, die noch nicht automatisch von Configuration Manager erkannt wurden.
Tipp
Sie können auch das PowerShell-Cmdlet Import-CMComputerInformation verwenden.
Sie müssen die folgenden Informationen angeben:
NETBIOS-Computername
MAC-Adresse
SMBIOS GUID
Hinweis
Die MAC-Adresse muss für einen Netzwerkadapter mit einem Treiber in Windows PE sein. Die MAC-Adresse muss im Doppelpunktformat vorliegen. Beispiel: 00:00:00:00:00:00
. Andere Formate verhindern, dass der Client richtlinien empfängt.
Sie sollten einer Sammlung einen neu importierten Computer hinzufügen. Auf diese Weise können Sie sofort Ankündigungen für die Bereitstellung von Betriebssystemen auf dem Computer erstellen.
Sie können einen neuen Computer einem Referenzcomputer zuordnen. Weitere Informationen finden Sie unter Erstellen einer Zuordnung zwischen zwei Computern in Configuration Manager.
So fügen Sie einen neuen Computer hinzu
Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.
Rufen Sie die ImportMachineEntry-Methode in Class SMS_Site auf.
Fügen Sie den Ressourcenbezeichner, den Sie aus ImportMachineEntry erhalten, einer Sammlung hinzu.
Beispiel
Die folgende Beispielmethode fügt Configuration Manager einen neuen Computer hinzu. Die ImportMachineEntry-Methode in class SMS_Site wird verwendet, um den Computer zu importieren. Anschließend wird der Computer einer benutzerdefinierten Sammlung hinzugefügt. Sammlung "All Systems".
Wichtig
In einer früheren Version dieses Beispiels wurde der Computer der Sammlung "Alle Systeme" hinzugefügt. Es ist nicht mehr möglich, die integrierten Sammlungen zu ändern, sondern stattdessen eine benutzerdefinierte Auflistung zu verwenden.
Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.
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;
}
}
Die Beispielmethode verfügt über die folgenden Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
connection |
-Verwalteten: WqlConnectionManager – VBScript: SWbemServices |
– Eine gültige Verbindung mit dem SMS-Anbieter. |
netBiosName |
-Verwalteten: String -Vbscript: String |
– Der NETBIOS-Computername. |
smBiosGuid |
-Verwalteten: String -Vbscript: String |
Die SMBIOS-GUID für den Computer. |
MacAddress |
-Verwalteten: String -Vbscript: String |
Die MAC-Adresse für den Computer im folgenden Format: 00:00:00:00:00:00 . |
Kompilieren des Codes
Das C#-Beispiel hat die folgenden Kompilierungsanforderungen:
Namespaces
System
System.Collections.Generic
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robuste Programmierung
Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager Fehlern.
.NET Framework-Sicherheit
Weitere Informationen zum Schützen Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.
Siehe auch
ImportMachineEntry-Methode in der Klasse SMS_Site
Informationen zur Computerverwaltung für die Betriebssystembereitstellung