Import nového počítače do Configuration Manager
Můžete přidat nový počítač přímo do databáze Configuration Manager voláním ImportMachineEntry metoda v class SMS_Site. Můžete ho použít k nasazení operačních systémů do počítačů, které ještě nebyly automaticky zjištěny Configuration Manager.
Tip
Můžete také použít rutinu PowerShellu Import-CMComputerInformation .
Musíte zadat následující informace:
Název počítače rozhraní NETBIOS
Adresa MAC
SMBIOS GUID
Poznámka
Adresa MAC musí být pro síťový adaptér, který má ovladač v prostředí Windows PE. Adresa MAC musí být ve formátu dvojtečky. Například: 00:00:00:00:00:00
. Jiné formáty zabrání klientovi v přijetí zásad.
Do kolekce byste měli přidat nově importovaný počítač. To vám umožní okamžitě vytvořit inzerování pro nasazení operačních systémů do počítače.
Nový počítač můžete přidružit k referenčnímu počítači. Další informace najdete v tématu Vytvoření přidružení mezi dvěma počítači v Configuration Manager.
Přidání nového počítače
Nastavte připojení k poskytovateli serveru SMS. Další informace najdete v tématu Základy poskytovatele serveru SMS.
Přidejte identifikátor prostředku, který získáte z ImportMachineEntry, do kolekce.
Příklad
Následující příklad metoda přidá nový počítač do Configuration Manager. Metoda ImportMachineEntry ve třídě SMS_Site slouží k importu počítače. Pak se počítač přidá do vlastní kolekce. Kolekce "Všechny systémy".
Důležité
V předchozí verzi tohoto příkladu byl počítač přidán do kolekce "Všechny systémy". Předdefinované kolekce už není možné upravovat. Místo toho použijte vlastní kolekci.
Informace o volání ukázkového kódu najdete v tématu Volání Configuration Manager fragmentů kódu.
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;
}
}
Ukázková metoda má následující parametry:
Parametr | Typ | Popis |
---|---|---|
connection |
-Spravované: WqlConnectionManager - VBScript: SWbemServices |
– Platné připojení k poskytovateli serveru SMS. |
netBiosName |
-Spravované: String -Vbscript: String |
– Název rozhraní NETBIOS počítače. |
smBiosGuid |
-Spravované: String -Vbscript: String |
Identifikátor GUID SMBIOS pro počítač. |
MacAddress |
-Spravované: String -Vbscript: String |
Adresa MAC počítače v následujícím formátu: 00:00:00:00:00:00 . |
Kompilace kódu
Příklad jazyka C# má následující požadavky na kompilaci:
Obory názvů
Systému
System.collections.generic
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Sestavení
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robustní programování
Další informace o zpracování chyb najdete v tématu Informace o chybách Configuration Manager.
Zabezpečení rozhraní .NET Framework
Další informace o zabezpečení Configuration Manager aplikací najdete v tématu Configuration Manager správa na základě rolí.
Viz taky
Metoda ImportMachineEntry ve třídě SMS_Site
Informace o správě počítačů nasazení operačního systému