Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile creare una variabile di raccolta per una raccolta Configuration Manager aggiungendo istanze di SMS_CollectionVariable Classe WMI server alla CollectionVariables proprietà di SMS_CollectionSettings Classe WMI del server.
Per creare una variabile di raccolta
Configurare una connessione al provider SMS. Per altre informazioni, vedere Nozioni fondamentali sul provider SMS.
Ottenere un'istanza di SMS_CollectionSettings.
Per ogni variabile da aggiungere, aggiungere istanze dell'oggetto incorporato SMS_CollectionVariable alla proprietà della matrice CollectionVariables .
Eseguire il commit delle modifiche nell'istanza della
SMS_CollectionSettingsclasse.
Esempio
Il metodo di esempio seguente crea una variabile di raccolta e la aggiunge alla raccolta identificata dall'identificatore fornito. Se l'oggetto SMS_CollectionSettings per la raccolta non esiste, viene creato.
Per informazioni sulla chiamata del codice di esempio, vedere Chiamata di frammenti di codice 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;
}
}
Il metodo di esempio include i parametri seguenti:
| Parametro | Tipo | Descrizione |
|---|---|---|
Connection |
-Gestito: WqlConnectionManager- VBScript: SWbemServices |
Connessione valida al provider SMS. |
Name |
-Gestito: String- VBScript: String |
Nome della variabile da creare. |
Value |
-Gestito: String- VBScript: String |
Valore della variabile |
Mask |
-Gestito: Boolean- VBScript: Boolean |
Specifica se il valore viene visualizzato nella console di Configuration Manager.true : il valore della variabile non viene visualizzato.false : viene visualizzato il valore della variabile. |
CollectionID |
-Gestito: String- VBScript: String |
Raccolta a cui viene aggiunta la variabile. |
Precedence |
-Gestito: Integer- VBScript: Integer |
Precedenza della variabile rispetto ad altre variabili nella matrice. |
Compilazione del codice
L'esempio C# presenta i requisiti di compilazione seguenti:
Spazi dei nomi
Sistema
System.Collections.Generic
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Programmazione efficiente
Per altre informazioni sulla gestione degli errori, vedere Informazioni sugli errori di Configuration Manager.
Sicurezza di .NET Framework
Per altre informazioni sulla protezione delle applicazioni Configuration Manager, vedere Configuration Manager'amministrazione basata sui ruoli.
Vedere anche
Panoramica degli oggettiHow to Connect to an SMS Provider in Configuration Manager by Using Managed CodeHow to Connect to an SMS Provider in Configuration Manager by Using WMIHow to Create a Computer Variable in Configuration ManagerHow to Create a Configuration Manager object by Using Managed CodeHow to Create a Configuration Manager Object by Using WMI About OS deployment computer management (Come creare un oggetto Configuration Manager tramite WMIsulla gestione del computer di distribuzione del sistema operativo)