Jak zaimportować nowy komputer do Configuration Manager
Nowy komputer można dodać bezpośrednio do bazy danych Configuration Manager, wywołując metodę ImportMachineEntry w klasie SMS_Site. Może służyć do wdrażania systemów operacyjnych na komputerach, które nie zostały jeszcze odnalezione automatycznie przez Configuration Manager.
Porada
Możesz również użyć polecenia cmdlet import-CMComputerInformation programu PowerShell.
Należy podać następujące informacje:
Nazwa komputera NETBIOS
Adres MAC
SMBIOS GUID
Uwaga
Adres MAC musi być przeznaczony dla karty sieciowej, która ma sterownik w systemie Windows PE. Adres MAC musi mieć format dwukropka. Na przykład 00:00:00:00:00:00
. Inne formaty uniemożliwią klientowi odbieranie zasad.
Należy dodać nowo zaimportowany komputer do kolekcji. Umożliwia to natychmiastowe tworzenie anonsów do wdrażania systemów operacyjnych na komputerze.
Nowy komputer można skojarzyć z komputerem odniesienia. Aby uzyskać więcej informacji, zobacz How to Create an Association Between Two Computers in Configuration Manager (Jak utworzyć skojarzenie między dwoma komputerami w Configuration Manager).
Aby dodać nowy komputer
Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy programu SMS.
Dodaj identyfikator zasobu pobrany z usługi ImportMachineEntry do kolekcji.
Przykład
Poniższa przykładowa metoda dodaje nowy komputer do Configuration Manager. Metoda ImportMachineEntry klasy SMS_Site służy do importowania komputera. Następnie komputer jest dodawany do kolekcji niestandardowej. Kolekcja "Wszystkie systemy".
Ważna
W poprzedniej wersji tego przykładu komputer został dodany do kolekcji "Wszystkie systemy". Nie można już modyfikować wbudowanych kolekcji, zamiast tego użyj kolekcji niestandardowej.
Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu 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;
}
}
Przykładowa metoda ma następujące parametry:
Parametr | Wpisać | Opis |
---|---|---|
connection |
-Zarządzane: WqlConnectionManager - VBScript: SWbemServices |
- Prawidłowe połączenie z dostawcą programu SMS. |
netBiosName |
-Zarządzane: String -Vbscript: String |
— nazwa netbios komputera. |
smBiosGuid |
-Zarządzane: String -Vbscript: String |
Identyfikator GUID SMBIOS dla komputera. |
MacAddress |
-Zarządzane: String -Vbscript: String |
Adres MAC komputera w następującym formacie: 00:00:00:00:00:00 . |
Kompilowanie kodu
Przykład języka C# ma następujące wymagania dotyczące kompilacji:
Obszary nazw
System
System.collections.generic
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Zestawu
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Niezawodne programowanie
Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach Configuration Manager.
zabezpieczenia .NET Framework
Aby uzyskać więcej informacji na temat zabezpieczania aplikacji Configuration Manager, zobacz Configuration Manager administracja oparta na rolach.
Zobacz też
ImportMachineEntry, metoda w klasie SMS_Site
Informacje o zarządzaniu komputerem wdrożenia systemu operacyjnego