Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie erstellen eine Computervariable für einen Computer, auf dem Configuration Manager ausgeführt wird, indem Sie der SMS_MachineSettings Klassenarrayeigenschaft MachineVariables Instanzen von SMS_MachineVariable hinzufügen.
So erstellen Sie eine Computervariable
Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.
Get an instance of
SMS_MachineSettings.Fügen Sie für jede hinzuzufügende Variable Instanzen des eingebetteten Objekts a
SMS_MachineVariablezurMachineVariablesArrayeigenschaft hinzu.Führen Sie einen Commit der Änderungen in der
SMS_MachineSettingsKlassen-instance durch.
Beispiel
Die folgende Beispielmethode erstellt eine Auflistungsvariable und fügt sie der durch den angegebenen Bezeichner identifizierten Auflistung hinzu.
Im Beispiel ist die LocaleID Eigenschaft für Englisch (USA) hartcodiert. Wenn Sie das Gebietsschema für nicht-US-amerikanische können Sie sie aus der Eigenschaft SMS_Identification Server WMI-KlasseLocaleID abrufen.
Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager-Codeausschnitten.
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;
}
}
Die Beispielmethode hat die folgenden Parameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
connection |
- Verwaltet: WqlConnectionManager- VBScript: SWbemDienste |
Eine gültige Verbindung mit dem SMS-Anbieter. |
siteCode |
- Verwaltet: String- VBScript: String |
Der Websitecode der Quellwebsite. |
name |
- Verwaltet: String- VBScript: String |
Der Name der zu erstellenden Variablen. |
value |
- Verwaltet: String- VBScript: String |
Der Wert der Variablen. |
mask |
- Verwaltet: Boolean- VBScript: Boolean |
Gibt an, ob der Wert in der Configuration Manager-Konsole angezeigt wird.true - Der Variablenwert wird nicht angezeigt.false - Der Variablenwert wird angezeigt. |
computerID |
- Verwaltet: Integer- VBScript: Integer |
Bezeichner des Computers. In der Regel ist dies die SMS_R_System Klasseneigenschaft ResourceID . |
Kompilieren des Codes
Für das C#-Beispiel gelten die folgenden Anforderungen für die Kompilierung:
Namespaces
System
System.Collections.Generic
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
Microsoft.ConfigurationManagement.ManagementProvider
adminui.wqlqueryengine
Robuste Programmierung
Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager-Fehlern.
.NET Framework-Sicherheit
Weitere Informationen zum Sichern von Configuration Manager-Anwendungen finden Sie unter rollenbasierte Verwaltung von Configuration Manager.
Siehe auch
Informationen zur Betriebssystembereitstellung Computerverwaltung