새 컴퓨터를 Configuration Manager 가져오는 방법
클래스 SMS_Site ImportMachineEntry 메서드를 호출하여 새 컴퓨터를 Configuration Manager 데이터베이스에 직접 추가합니다. Configuration Manager 자동으로 검색되지 않은 컴퓨터에 운영 체제를 배포하는 데 사용할 수 있습니다.
팁
Import-CMComputerInformation PowerShell cmdlet을 사용할 수도 있습니다.
다음 정보를 제공해야 합니다.
NETBIOS 컴퓨터 이름
MAC 주소
SMBIOS GUID
참고
MAC 주소는 Windows PE에 드라이버가 있는 네트워크 어댑터의 주소여야 합니다. MAC 주소는 콜론 형식이어야 합니다. 예를 들면 00:00:00:00:00:00
와 같습니다. 다른 형식은 클라이언트가 정책을 수신하지 못하게 합니다.
컬렉션에 새로 가져온 컴퓨터를 추가해야 합니다. 이렇게 하면 운영 체제를 컴퓨터에 배포하기 위한 광고를 즉시 만들 수 있습니다.
새 컴퓨터를 참조 컴퓨터와 연결할 수 있습니다. 자세한 내용은 Configuration Manager 두 컴퓨터 간의 연결을 만드는 방법을 참조하세요.
새 컴퓨터를 추가하려면
SMS 공급자에 대한 연결을 설정합니다. 자세한 내용은 SMS 공급자 기본 사항을 참조하세요.
ImportMachineEntry에서 가져온 리소스 식별자를 컬렉션에 추가합니다.
예시
다음 예제 메서드는 Configuration Manager 새 컴퓨터를 추가합니다. 클래스 SMS_Site ImportMachineEntry 메서드는 컴퓨터를 가져오는 데 사용됩니다. 그런 다음 컴퓨터가 사용자 지정 컬렉션에 추가됩니다. "모든 시스템" 컬렉션입니다.
중요
이 예제의 이전 버전에서는 컴퓨터가 "모든 시스템" 컬렉션에 추가되었습니다. 더 이상 기본 제공 컬렉션을 수정하고 사용자 지정 컬렉션을 대신 사용할 수 없습니다.
샘플 코드 호출에 대한 자세한 내용은 코드 조각 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;
}
}
예제 메서드에는 다음 매개 변수가 있습니다.
매개 변수 | 형식 | 설명 |
---|---|---|
connection |
-관리: WqlConnectionManager - VBScript: SWbemServices |
- SMS 공급자에 대한 유효한 연결입니다. |
netBiosName |
-관리: String -Vbscript: String |
- 컴퓨터 NETBIOS 이름입니다. |
smBiosGuid |
-관리: String -Vbscript: String |
컴퓨터의 SMBIOS GUID입니다. |
MacAddress |
-관리: String -Vbscript: String |
컴퓨터의 MAC 주소 형식은 00:00:00:00:00:00 입니다. |
코드 컴파일
C# 예제에는 다음과 같은 컴파일 요구 사항이 있습니다.
네임 스페이스
시스템
System.Collections.Generic
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
어셈블리
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
강력한 프로그래밍
오류 처리에 대한 자세한 내용은 Configuration Manager 오류 정보를 참조하세요.
.NET Framework 보안
Configuration Manager 애플리케이션 보안에 대한 자세한 내용은 역할 기반 관리 Configuration Manager 참조하세요.