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
Configure uma conexão com o Provedor de SMS.
Criar uma instância da
SMS_SCI_SysResUse
classe WMIDefina as
NALPath
propriedades ,NALType
,RoleName
eSitecode
.Dependendo da função escolhida, defina as propriedades inseridas corretas ou os valores da lista de propriedades inseridas.
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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de