Skapa en samlingsvariabel i Configuration Manager
Du skapar en samlingsvariabel för en Configuration Manager samling genom att lägga till instanser av SMS_CollectionVariable Serverns WMI-klass i CollectionVariables
egenskapen för SMS_CollectionSettings Serverns WMI-klass.
Så här skapar du en samlingsvariabel
Konfigurera en anslutning till SMS-providern. Mer information finns i grunderna för SMS-provider.
Hämta en instans av SMS_CollectionSettings.
För varje variabel som ska läggas till lägger du till instanser av det inbäddade objektet SMS_CollectionVariable till arrayegenskapen CollectionVariables .
Checka in ändringarna i klassinstansen
SMS_CollectionSettings
.
Exempel
Följande exempelmetod skapar en samlingsvariabel och lägger till den i samlingen som identifieras av den angivna identifieraren. Om objektet SMS_CollectionSettings
för samlingen inte finns skapas det.
Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.
Sub CreateCollectionVariable( connection, name, value, mask, collectionId, precedence)
Dim collectionSettings
Dim collectionVariables
Dim collectionVariable
Dim Settings
' See if the settings collection already exists. if it does not, create it.
Set settings = connection.ExecQuery _
("Select * From SMS_CollectionSettings Where CollectionID = '" & collectionID & "'")
If settings.Count = 0 Then
Wscript.Echo "Creating collection settings object"
Set collectionSettings = connection.Get("SMS_CollectionSettings").SpawnInstance_
collectionSettings.CollectionID = collectionId
collectionSettings.Put_
End If
' Get the collection settings object.
Set collectionSettings = connection.Get("SMS_CollectionSettings.CollectionID='" & collectionId &"'" )
' Get the collection variables.
collectionVariables=collectionSettings.CollectionVariables
' Create and populate a new collection variable.
Set collectionVariable = connection.Get("SMS_CollectionVariable").SpawnInstance_
collectionVariable.Name = name
collectionVariable.Value = value
collectionVariable.IsMasked = mask
' Add the new collection variable.
ReDim Preserve collectionVariables (UBound (collectionVariables)+1)
Set collectionVariables(UBound(collectionVariables)) = collectionVariable
collectionSettings.CollectionVariables=collectionVariables
collectionSettings.Put_
End Sub
public void CreateCollectionVariable(
WqlConnectionManager connection,
string name,
string value,
bool mask,
string collectionId,
int precedence)
{
try
{
IResultObject collectionSettings = null;
// Get the collection settings. Create it if necessary.
IResultObject collectionSettingsQuery = connection.QueryProcessor.ExecuteQuery(
"Select * from SMS_CollectionSettings where CollectionID='" + collectionId + "'");
foreach (IResultObject setting in collectionSettingsQuery)
{
collectionSettings = setting;
}
if ( collectionSettings == null)
{
collectionSettings = connection.CreateInstance("SMS_CollectionSettings");
collectionSettings["CollectionID"].StringValue = collectionId;
collectionSettings.Put();
collectionSettings.Get();
}
// Create the collection variable.
List<IResultObject> collectionVariables = collectionSettings.GetArrayItems("CollectionVariables");
IResultObject collectionVariable = connection.CreateEmbeddedObjectInstance("SMS_CollectionVariable");
collectionVariable["Name"].StringValue = name;
collectionVariable["Value"].StringValue = value;
collectionVariable["IsMasked"].BooleanValue = mask;
// Add the collection variable to the collection settings.
collectionVariables.Add(collectionVariable);
collectionSettings.SetArrayItems("CollectionVariables", collectionVariables);
// Set the collection variable precedence.
collectionSettings["CollectionVariablePrecedence"].IntegerValue = precedence;
collectionSettings.Put();
}
catch (SmsException e)
{
Console.WriteLine("Failed to create collection variable: " + e.Message);
throw;
}
}
Exempelmetoden har följande parametrar:
Parameter | Typ | Beskrivning |
---|---|---|
Connection |
-Hanterade: WqlConnectionManager – VBScript: SWbemServices |
En giltig anslutning till SMS-providern. |
Name |
-Hanterade: String -Vbscript: String |
Namnet på variabeln som ska skapas. |
Value |
-Hanterade: String -Vbscript: String |
Värdet för variabeln |
Mask |
-Hanterade: Boolean -Vbscript: Boolean |
Anger om värdet visas i Configuration Manager-konsolen.true – variabelvärdet visas inte.false – variabelvärdet visas. |
CollectionID |
-Hanterade: String -Vbscript: String |
Den samling som variabeln läggs till i. |
Precedence |
-Hanterade: Integer -Vbscript: Integer |
Variabelns prioritet framför andra variabler i matrisen. |
Kompilera koden
C#-exemplet har följande kompileringskrav:
Namnområden
System
System.Collections.Generic
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Församlingen
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robust programmering
Mer information om felhantering finns i Om Configuration Manager fel.
.NET Framework Säkerhet
Mer information om hur du skyddar Configuration Manager program finns i Configuration Manager rollbaserad administration.
Se även
ObjektöversiktSå här ansluter du till en SMS-provider i Configuration Manager med hjälp av hanterad kod
Ansluta till en SMS-provider i Configuration Manager med hjälp av WMI
Skapa en datorvariabel i Configuration Manager
Så här skapar du ett Configuration Manager objekt med hjälp av hanterad kod
Så här skapar du ett Configuration Manager objekt med hjälp av WMI
Om datorhantering för operativsystemdistribution