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
Konfigurera en anslutning till SMS-providern.
Skapa en instans av
SMS_SCI_SysResUse
WMI-klassenNALPath
Ange egenskaperna ,NALType
,RoleName
ochSitecode
.Beroende på vilken roll som valts anger du rätt inbäddade egenskaper eller inbäddade egenskapslistvärden.
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