Configuration Manager 컴퓨터 변수를 만드는 방법
SMS_MachineSettings 클래스MachineVariables
배열 속성에 SMS_MachineVariable 인스턴스를 추가하여 Configuration Manager 실행하는 컴퓨터에 대한 컴퓨터 변수를 만듭니다.
컴퓨터 변수를 만들려면
SMS 공급자에 대한 연결을 설정합니다. 자세한 내용은 SMS 공급자 기본 사항을 참조하세요.
의 인스턴스를
SMS_MachineSettings
가져옵니다.추가할 각 변수에 대해 포함된 개체
SMS_MachineVariable
의 인스턴스를 배열 속성에MachineVariables
추가합니다.클래스 인스턴스에
SMS_MachineSettings
변경 내용을 커밋합니다.
예시
다음 예제 메서드는 컬렉션 변수를 만들고 제공된 식별자가 식별한 컬렉션에 추가합니다.
예제 LocaleID
에서 속성은 영어(미국)로 하드 코딩됩니다. 미국 이외 지역의 로캘이 필요한 경우 설치를 SMS_Identification 서버 WMI 클래스LocaleID
속성에서 가져올 수 있습니다.
샘플 코드 호출에 대한 자세한 내용은 코드 조각 Configuration Manager 호출을 참조하세요.
Sub CreateComputerVariable(connection, siteCode, name, value, mask, computerId)
Dim computerSettings
Dim computerVariables
Dim computerVariable
Dim Settings
' See if the computer settings object already exists. if it does not, create it.
Set settings = connection.ExecQuery _
("Select * From SMS_MachineSettings Where ResourceID = '" & computerID & "'")
If settings.Count = 0 Then
Wscript.Echo "Creating computer settings object"
Set computerSettings = connection.Get("SMS_MachineSettings").SpawnInstance_
computerSettings.ResourceID = computerId
computerSettings.SourceSite = siteCode
computerSettings.LocaleID = 1033
computerSettings.Put_
End If
' Get the computer settings object.
Set computerSettings = connection.Get("SMS_MachineSettings.ResourceID='" & computerId &"'" )
' Get the computer variables.
computerVariables=computerSettings.MachineVariables
' Create and populate a new computer variable.
Set computerVariable = connection.Get("SMS_MachineVariable").SpawnInstance_
computerVariable.Name = name
computerVariable.Value = value
computerVariable.IsMasked = mask
' Add the new computer variable.
ReDim Preserve computerVariables (UBound (computerVariables)+1)
Set computerVariables(UBound(computerVariables)) = computerVariable
computerSettings.MachineVariables=computerVariables
computerSettings.Put_
End Sub
public void CreateComputerVariable(
WqlConnectionManager connection,
string siteCode,
string name,
string value,
bool mask,
int computerId)
{
try
{
// Get the computer settings.
IResultObject computerSettings=null;
IResultObject computerSettingsQuery = connection.QueryProcessor.ExecuteQuery(
"Select * from SMS_MachineSettings where ResourceId = '" + computerId + "'");
foreach (IResultObject settings in computerSettingsQuery)
{
computerSettings = settings;
}
if (computerSettings == null) // It does not exist, so create it.
{
computerSettings = connection.CreateInstance(@"SMS_MachineSettings");
computerSettings["ResourceID"].IntegerValue = computerId;
computerSettings["SourceSite"].StringValue = siteCode;
computerSettings["LocaleID"].IntegerValue = 1033;
computerSettings.Put();
computerSettings.Get();
}
// Create the computer variable.
List<IResultObject> computerVariables = computerSettings.GetArrayItems("MachineVariables");
IResultObject computerVariable = connection.CreateEmbeddedObjectInstance("SMS_MachineVariable");
computerVariable["Name"].StringValue = name;
computerVariable["Value"].StringValue = value;
computerVariable["IsMasked"].BooleanValue = mask;
// Add the computer variable to the computer settings.
computerVariables.Add(computerVariable);
computerSettings.SetArrayItems("MachineVariables", computerVariables);
computerSettings.Put();
}
catch (SmsException e)
{
Console.WriteLine("Failed to create computer variable: " + e.Message);
throw;
}
}
예제 메서드에는 다음 매개 변수가 있습니다.
매개 변수 | 형식 | 설명 |
---|---|---|
connection |
-관리: WqlConnectionManager - VBScript: SWbemServices |
SMS 공급자에 대한 유효한 연결입니다. |
siteCode |
-관리: String -Vbscript: String |
원본 사이트의 사이트 코드입니다. |
name |
-관리: String -Vbscript: String |
만들 변수의 이름입니다. |
value |
-관리: String -Vbscript: String |
변수 값입니다. |
mask |
-관리: Boolean -Vbscript: Boolean |
값이 Configuration Manager 콘솔에 표시되는지 여부를 지정합니다.true - 변수 값이 표시되지 않습니다.false - 변수 값이 표시됩니다. |
computerID |
-관리: Integer -Vbscript: Integer |
컴퓨터 식별자입니다. 일반적으로 이 속성은 SMS_R_System 클래스 ResourceID 속성입니다. |
코드 컴파일
C# 예제에는 다음과 같은 컴파일 요구 사항이 있습니다.
네임 스페이스
시스템
System.Collections.Generic
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
어셈블리
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
강력한 프로그래밍
오류 처리에 대한 자세한 내용은 Configuration Manager 오류 정보를 참조하세요.
.NET Framework 보안
Configuration Manager 애플리케이션 보안에 대한 자세한 내용은 역할 기반 관리 Configuration Manager 참조하세요.