Dela via


Så här distribuerar du en platssystemroll (exempel: Återställningsstatuspunkt)

Funktionerna och funktionerna på en webbplats bestäms av de platsroller som tillämpas på den. En webbplats kan innehålla en eller flera platsroller. Vissa roller är beroende av andra roller. Mer information om specifika platsroller finns i Konfigurera platser och hierarkier för Configuration Manager.

Konfigurationen av en plats utförs via WMI-klasser (Windows Management Instrumentation). Till exempel innehåller SMS_SCI_Component serverns WMI-klass information om de serverkomponenter som lagras på en Configuration Manager platsserver. Dessa klasser härleds från SMS_SiteControlItem serverns WMI-klass. Mer information finns i Configuration Manager WMI-klasser för platskonfigurationsservern.

Obs!

I tidigare versioner av Configuration Manager SMS_SiteControlFile användes WMI-klassen för att ta emot den senaste kopian av en platskonfiguration, uppdatera en platskonfiguration och hantera uppdateringssessioner. Detta krävs inte längre eftersom de ändringar som görs i en platskonfiguration omedelbart skrivs till databasen och en fil inte längre används.

Platskontrollobjekt använder vanligtvis tre typers egenskaper för enskilda inställningar, inbäddade egenskaper, egenskapslistor och listor med flera strängar. De används med hjälp av följande klasser:

Typ WMI-klass
Inbäddad egenskap SMS_EmbeddedProperty, serverns WMI-klass
Inbäddad egenskapslista SMS_EmbeddedPropertyList serverns WMI-klass (matris)
Lista med flera strängar SMS_Client_Reg_MultiString_List serverns WMI-klass (matris)

Så här distribuerar du en platsroll

  1. Konfigurera en anslutning till SMS-providern.

  2. Skapa en instans av SMS_SCI_SysResUse WMI-klassen

  3. NALPathAnge egenskaperna , NALType, RoleNameoch Sitecode .

  4. Beroende på vilken roll som valts anger du rätt inbäddade egenskaper eller inbäddade egenskapslistvärden.

  5. Spara rollen.

Exempel

I följande exempel skapas en Fallback Status Point roll:

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

Exempelmetoden har följande parametrar:

Parameter Typ Beskrivning
connection -Hanterade: WqlConnectionManager
– VBScript: SWbemServices
En giltig anslutning till SMS-providern.
computerName String Namnet på platsservern.
siteCode String Platskoden.
domainName String Platsserverns fullständigt kvalificerade domännamn.

Kompilera koden

C#-exemplet kräver:

Namnområden

System.Collections.Generic

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Församlingen

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

Robust programmering

Mer information om felhantering finns i Om Configuration Manager fel.

Se även

SMS_EmbeddedProperty, serverns WMI-klass
SMS_SCI_SysResUse, serverns WMI-klass
Om platskontrollfilen