Udostępnij za pośrednictwem


Jak wdrożyć rolę systemu lokacji (przykład: rezerwowy punkt stanu)

Funkcje i możliwości witryny są określane przez role lokacji zastosowane do niej. Witryna może zawierać co najmniej jedną rolę lokacji. Niektóre role zależą od innych ról. Aby uzyskać więcej informacji na temat określonych ról lokacji, zobacz Konfigurowanie lokacji i hierarchii dla Configuration Manager.

Konfigurowanie lokacji odbywa się za pomocą klas instrumentacji zarządzania windows (WMI). Na przykład klasa WMI serwera SMS_SCI_Component przechowuje informacje o składnikach serwera przechowywanych na serwerze lokacji Configuration Manager. Te klasy pochodzą z klasy WMI serwera SMS_SiteControlItem. Aby uzyskać więcej informacji, zobacz Configuration Manager Klasy WMI serwera konfiguracji lokacji.

Uwaga

We wcześniejszych wersjach Configuration Manager SMS_SiteControlFile klasa WMI była używana do odbierania najnowszej kopii konfiguracji lokacji, aktualizowania konfiguracji lokacji i zarządzania sesjami aktualizacji. Nie jest to już wymagane, ponieważ zmiany wprowadzone w konfiguracji lokacji są natychmiast zapisywane w bazie danych i plik nie jest już używany.

Elementy kontroli lokacji zwykle używają właściwości trzech typów dla poszczególnych ustawień, właściwości osadzonych, list właściwości i list wielociągowych. Dostęp do nich można uzyskać przy użyciu następujących klas:

Wpisać Klasa WMI
Właściwość Embedded SMS_EmbeddedProperty Server WMI Class
Lista właściwości osadzonych klasa WMI serwera SMS_EmbeddedPropertyList (tablica)
Lista z wieloma ciągami SMS_Client_Reg_MultiString_List Server WMI Class (tablica)

Aby wdrożyć rolę lokacji

  1. Skonfiguruj połączenie z dostawcą programu SMS.

  2. Tworzenie wystąpienia SMS_SCI_SysResUse klasy WMI

  3. NALPathUstaw właściwości , NALType, RoleNamei Sitecode .

  4. W zależności od wybranej roli ustaw poprawne właściwości osadzone lub osadzone wartości listy właściwości.

  5. Zapisz rolę.

Przykład

Poniższy przykład tworzy Fallback Status Point rolę:

Sub CreateRole(connection, computerName, siteCode, domainName)    Dim role    Dim props    ' Create an instance of the class that defines a role    Set role = connection.Get("SMS_SCI_SysResUse").SpawnInstance_()    ' Configure the basic information of a role    role.NALPath  = "[""Display=\\" &  computerName & "." & domainName & "\""]MSWNET:[""SMS_SITE=" & siteCode & """]\\" & computerName & "." & domainName & "\"    role.NALType  = "Windows NT Server"    role.RoleName = "SMS Fallback Status Point"    role.Sitecode = siteCode    ' Initialize the properties array    props = Array()    ' Add each required property to the array    SetProperty connection, props, "FSPInternetFacing", 0, "", ""    SetProperty connection, props, "Throttle Count", 10000, "", ""    SetProperty connection, props, "Throttle Interval", 3600000, "", ""    SetProperty connection, props, "Server Remote Name", 0, computerName & "." & domainName, ""    ' Set the role's properties and commit the role    role.Props = props    role.Put_    ' Cleanup    Set role = Nothing    Set props = NothingEnd SubSub SetProperty(connection, propsArray, propertyName, intValue, strValue1, strValue2)    Dim index    Dim foundProperty    Dim newProperty    foundProperty = False    ' Loop through properties until a match is found and then set the properties using the values passed in.    For index = 0 to UBound(propsArray)        If propsArray(index).PropertyName = propertyName then            foundProperty = true            propsArray(index).Value = intValue            propsArray(index).Value1 = strValue1            propsArray(index).Value2 = strValue2            Exit For        End if    Next    ' If the property does not exist, then create it and set the property values using the values passed in.    If not foundProperty then        Set newProperty = connection.Get("SMS_EmbeddedProperty").SpawnInstance_        newProperty.PropertyName = propertyName        newProperty.Value = intValue        newProperty.Value1 = strValue1        newProperty.Value2 = strValue2        ReDim Preserve propsArray(UBound(propsArray) + 1)        Set propsArray(UBound(propsArray)) = newProperty     End if    ' Cleanup    Set newProperty = NothingEnd Sub  
public void CreateRole(WqlConnectionManager connection, string computerName, string siteCode, string domainName){    IResultObject role = connection.CreateInstance("SMS_SCI_SysResUse");    string fqdn = computerName + "." + domainName;    role.Properties["NALPath"].StringValue = string.Format(@"[""Display=\\{0}\""]MSWNET:[""SMS_SITE={1}""]\\{0}\", fqdn, siteCode);    role.Properties["NALType"].StringValue = "Windows NT Server";    role.Properties["RoleName"].StringValue = "SMS Fallback Status Point";    role.Properties["Sitecode"].StringValue = siteCode;    WriteEmbeddedProperty(role, "FSPInternetFacing", 0, "", "");    WriteEmbeddedProperty(role, "Throttle Count", 10000, "", "");    WriteEmbeddedProperty(role, "Throttle Interval", 3600000, "", "");    WriteEmbeddedProperty(role, "Server Remote Name", 0, fqdn, "");    role.Put();}public void WriteEmbeddedProperty(IResultObject container, string propertyName, int value, string value1, string value2){    // Get the property, or create it.    IResultObject newProperty;    Dictionary<string, IResultObject> propertiesCopy = container.EmbeddedProperties;    if (propertiesCopy.ContainsKey(propertyName))    {        newProperty = propertiesCopy[propertyName];    }    else    {        newProperty = container.ConnectionManager.CreateEmbeddedObjectInstance("SMS_EmbeddedProperty");        propertiesCopy.Add(propertyName, newProperty);    }    newProperty["PropertyName"].StringValue = propertyName;    newProperty["Value"].IntegerValue = value;    newProperty["Value1"].StringValue = value1;    newProperty["Value2"].StringValue = value2;    container.EmbeddedProperties = propertiesCopy;}  

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.
computerName String Nazwa serwera lokacji.
siteCode String Kod witryny.
domainName String W pełni kwalifikowana nazwa domeny serwera lokacji.

Kompilowanie kodu

Przykład języka C# wymaga:

Obszary nazw

System.collections.generic

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Zestawu

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

Niezawodne programowanie

Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach Configuration Manager.

Zobacz też

SMS_EmbeddedProperty Server WMI Class
SMS_SCI_SysResUse Server WMI Class
Informacje o pliku kontrolki lokacji