Jak utworzyć zmienną kolekcji w Configuration Manager
Zmienną kolekcji dla kolekcji Configuration Manager można utworzyć, dodając wystąpienia klasy WMI serwera SMS_CollectionVariable do CollectionVariables
właściwości klasy WMI serwera SMS_CollectionSettings.
Aby utworzyć zmienną kolekcji
Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy programu SMS.
Pobierz wystąpienie SMS_CollectionSettings.
Dla każdej zmiennej do dodania dodaj wystąpienia obiektu osadzonego SMS_CollectionVariable do właściwości tablicy CollectionVariables .
Zatwierdź zmiany w wystąpieniu
SMS_CollectionSettings
klasy.
Przykład
Poniższa przykładowa metoda tworzy zmienną kolekcji i dodaje ją do kolekcji zidentyfikowanej przez podany identyfikator.
SMS_CollectionSettings
Jeśli obiekt kolekcji nie istnieje, zostanie utworzony.
Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu Configuration Manager.
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;
}
}
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. |
Name |
-Zarządzane: String -Vbscript: String |
Nazwa zmiennej do utworzenia. |
Value |
-Zarządzane: String -Vbscript: String |
Wartość zmiennej |
Mask |
-Zarządzane: Boolean -Vbscript: Boolean |
Określa, czy wartość jest wyświetlana w konsoli Configuration Manager.true — wartość zmiennej nie jest wyświetlana.false — zostanie wyświetlona wartość zmiennej. |
CollectionID |
-Zarządzane: String -Vbscript: String |
Kolekcja dodawana do zmiennej. |
Precedence |
-Zarządzane: Integer -Vbscript: Integer |
Pierwszeństwo zmiennej nad innymi zmiennymi w tablicy. |
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ż
Omówienie obiektówJak nawiązać połączenie z dostawcą programu SMS w Configuration Manager przy użyciu kodu zarządzanego
Jak nawiązać połączenie z dostawcą programu SMS w Configuration Manager przy użyciu usługi WMI
Jak utworzyć zmienną komputerową w Configuration Manager
Jak utworzyć obiekt Configuration Manager przy użyciu kodu zarządzanego
Jak utworzyć obiekt Configuration Manager przy użyciu usługi WMI
Informacje o zarządzaniu komputerem wdrożenia systemu operacyjnego