Compartilhar via


Como implantar uma função do sistema de site (exemplo: ponto de status de fallback)

Os recursos e os recursos de um site são determinados pelas funções do site aplicadas a ele. Um site pode conter uma ou mais funções de site. Algumas funções dependem de outras funções. Para obter mais informações sobre funções de site específicas, consulte Configurar sites e hierarquias para Configuration Manager.

A configuração de um site é executada por meio de classes WMI (Instrumentação de Gerenciamento do Windows). Por exemplo, SMS_SCI_Component Classe WMI do Servidor contém informações sobre os componentes do servidor armazenados em um servidor de site Configuration Manager. Essas classes derivam da classe WMI do servidor SMS_SiteControlItem. Para obter mais informações, consulte Configuration Manager Classes WMI do Servidor de Configuração de Site.

Observação

Em versões anteriores do Configuration Manager, a SMS_SiteControlFile classe WMI foi usada para receber a cópia mais recente da configuração de um site, atualizar a configuração de um site e gerenciar sessões de atualização. Isso não é mais necessário, pois as alterações feitas na configuração de um site são imediatamente gravadas no banco de dados e um arquivo não é mais usado.

Os itens de controle de site geralmente usam as propriedades de três tipos para configurações individuais, propriedades inseridas, listas de propriedades e listas de várias cadeias de caracteres. Eles são acessados usando as seguintes classes:

Tipo Classe WMI
Propriedade inserida Classe WMI do servidor SMS_EmbeddedProperty
Lista de propriedades inseridas classe WMI do servidor SMS_EmbeddedPropertyList (matriz)
Lista de várias cadeias de caracteres classe WMI do servidor SMS_Client_Reg_MultiString_List (matriz)

Para implantar uma função de site

  1. Configure uma conexão com o Provedor de SMS.

  2. Criar uma instância da SMS_SCI_SysResUse classe WMI

  3. Defina as NALPathpropriedades , NALType, RoleNamee Sitecode .

  4. Dependendo da função escolhida, defina as propriedades inseridas corretas ou os valores da lista de propriedades inseridas.

  5. Salve a função.

Exemplo

O exemplo a seguir cria uma Fallback Status Point função:

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;}  

O método de exemplo tem os seguintes parâmetros:

Parâmetro Tipo Descrição
connection -Gerenciado: WqlConnectionManager
- VBScript: SWbemServices
Uma conexão válida com o provedor de SMS.
computerName String O nome do servidor do site.
siteCode String O código do site.
domainName String O nome de domínio totalmente qualificado do servidor do site.

Compilando o código

O exemplo C# requer:

Namespaces

System.Collections.Generic

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

Programação robusta

Para obter mais informações sobre o tratamento de erros, consulte Sobre erros de Configuration Manager.

Confira também

Classe WMI do servidor SMS_EmbeddedProperty
Classe WMI do servidor SMS_SCI_SysResUse
Sobre o arquivo de controle do site