Export (0) Print
Expand All

Server Manager Extension Schema

The schema is a tool for OEMs to create the extensibility XML file. For performance reasons, the XML file will not be validated by the schema and the schema will not be used for deserialization of the XML file at runtime by the user interface (UI). If you do not create XML that conforms to the schema, the resources will not appear in the UI and no errors will be displayed.

ServerUIExtension Element

The root element of the XML file is the ServerUIExtension element and contains a list of extensions that apply to the out-of-box experience, or role home pages, or both.

Child Elements

 

Extension

Required

One extension element is added for the out-of-box experience and multiple extension elements can be added for each of the Server Manager home pages.

Attributes

 

ResourceDllPath

Required

A path to the default resource DLL from which all resources will be loaded to extend the UI. The DLL must be found under %WINDIR%\System32 to prevent tampering by unauthorized users.

Environment variables will be evaluated.

Example

The following XML shows the ServerUIExtension element schema definition.

<xs:element name="ServerUIExtension">
   <xs:complexType>
      <xs:sequence>
         <xs:element name="Extension" type="ExtensionType" 
minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
         <xs:attribute name="ResourceDllPath" type="xs:string" 
use="required"/>
   </xs:complexType>
</xs:element>

Extension Element

The Extension element defines the new sections that will be added to the out-of-box experience.

Child Elements

 

Section

Not Required

The element adds a new section to the end of the out-of-box experience or a new tile to the end-of-role home pages. Only one new tile is allowed, unless a specific role allows for multiple roles, as in the case of the File Server role.

Attributes

 

Name

Required

The name of the extension to indicate if the new branding and new sections apply to oobe (“InitConfig”) or to a role home page. Must be one of these values: InitConfig, ADAM, ADFS, Application, Certificate, DHCP, Directory, Fax, File, Web, Media, NAS, Print, RMS,TS, UDDI, VirtualServer, WDS, WUS

ResourceDllPath

Not Required

A path to the resource DLL from which resources are loaded for this extension. If not specified, the default resource DLL that is specified in the root ServerUIExtension element will be used.

The DLL must be found in %WINDIR%\system32.

Environment variables will be evaluated.

Example

The following XML shows the Extension element schema definition.

<xs:complexType name="ExtensionType">
   <xs:sequence>
      <xs:element name="Section" type="SectionType"
 minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
      <xs:attribute name="Name" type="ExtensionNameType" use="required"/>
      <xs:attribute name="ResourceDllPath" type="xs:string" use="optional"/>
      <xs:attribute name="HeaderTitleId" type="StringIdType" use="optional"/>
      <xs:attribute name="HeaderIconId" type="IconIdType" use="optional"/>
      <xs:attribute name="HeaderImageId" type="ImageIdType" use="optional"/>
      <xs:attribute name="HeaderDescriptionId" type="StringIdType" 
                      use="optional"/>
</xs:complexType>

Section Element

New sections can be added below existing sections in both Initial Configuration Tasks and Server Manager. In Initial Configuration Tasks, existing sections can also be modified. If an existing section is being modified, the Id attribute identifies the section to modify. If the Id attribute is not specified, a new section will be added.

noteNote
Status information is not displayed for the tasks in the Initial Configuration Tasks.

Child Elements

 

HelpLink

Not Required

This element specifies information that is necessary to launch a topic.

Task

Not Required

Specifies the tasks to be launched. Status information is not displayed for the tasks in the Initial Configuration Tasks.

Attributes

 

TitleId

Not Required

The ID in the resource DLL from which to load the section’s title

Id

Not Required

The identifier of an existing section in Initial Configuration Tasks that will be modified. The section names to identify the sections are: “1,” “2,” and “3.”

DescriptionId

Not Required

The ID of the description that is shown at the top of a section on a home page. Will be ignored in InitConfig.

BrandingImageId

Not Required

The OEM image that is displayed in the section. The transparency color is Color.Magenta.

Example

The following XML shows the section element schema definition.

<xs:complexType name="SectionType">
   <xs:sequence>
      <xs:element name="HelpLink" type="HelpLinkType" minOccurs="0"/>
      <xs:element name="Task" type="TaskType" minOccurs="0" 
maxOccurs="unbounded"/>
      <xs:attribute name="BrandingImageId" type="ImageIdType" 
   </xs:sequence>
      <xs:attribute name="TitleId" type="StringIdType" use="optional"/>
      <xs:attribute name="Id" type="SectionIdType" use="optional"/>
</xs:complexType>

HelpLink Element

The Help link is a launch point for the OEM to provide user assistance. There are three ways Help can be launched: a help topic in a CHM, a URL, or an arbitrary command that launches Help in some other form.

noteNote
There can be no more than one HelpLink in a section.

Attributes

 

ActionLinkAttributes

No

Both Help links and tasks have basically the same functionality: to perform some action when the user clicks. To provide complete flexibility, both of these links will be able to launch an action in the form of:

  • A Help topic (in a CHM)
  • A URL
  • An arbitrary command

If more than one of the help targets is specified, a target is chosen in that order. For example, if both a Help topic and a URL are provided, only the Help topic is launched.

Example

The following XML shows the HelpLink element schema definition.

<xs:complexType name="HelpLinkType">
   <xs:attributeGroup ref="ActionLinkAttributes"/>
</xs:complexType> 

ActionLinkAttributes Element

Both Help links and tasks have basically the same functionality: to perform some action when the user clicks the link. To provide flexibility, both of these links launch an action in the form of a Help topic, a URL, or another command.

If more than one of the Help targets is specified, a target is chosen in the order listed in the previous paragraph. For example, if both a Help topic and a URL are provided, only the Help topic is launched.

Attributes

 

LinkId

Not Required

String ID for the link to be loaded from resources.

ToolTipId

Not Required

String ID for the tool tip that is displayed for the link. If not specified and the Url or UrlId attributes are specified, the URL is displayed as the tool tip.

DescriptionId

Required except for InitConfig

String ID for the description that is displayed next to the action link on a home page. Ignored in an InitConfig extension.

HelpFile

Not Required

File name of the compiled HTML Help file (.chm). The HelpTopic attribute must also be set to the name of the topic inside the .chm, except during the out-of-box experience.

Environment variables are evaluated. However, it is not recommended that you provide an absolute path. This way, the Help application programming interface (API) can automatically pick up the .chm from the built-in directory and handle localization.

HelpTopic

Not Required

If the HelpFile attribute is set, the HelpTopic is the name of the topic inside the chm.

Command

Not Required

A command that is launched when the task is clicked.

Environment variables are evaluated.

CommandArguments

Not Required

Arguments to pass to the command to be executed. Environment variables are evaluated.

Url

Not Required

A URL that is launched when the help link is clicked. The Web site is displayed in the user’s default browser.

UrlID

Not Required

A localizable URL that is loaded from the resource DLL. The Web site is launched in the user’s default browser.

Example

The following XML shows the ActionLinksAttributes element schema definition.

<xs:attributeGroup name="ActionLinkAttributes">
   <xs:attribute name="LinkId" type="StringIdType" use="optional"/>
   <xs:attribute name="ToolTipId" type="StringIdType" use="optional"/>
   <xs:attribute name="DescriptionId" type="StringIdType" use="optional"/>
   <xs:attribute name="HelpFile" type="xs:string" use="optional"/>
   <xs:attribute name="HelpTopic" type="xs:string" use="optional"/>
   <xs:attribute name="Command" type="xs:string" use="optional"/>
   <xs:attribute name="CommandArguments" type="xs:string" use="optional"/>
   <xs:attribute name="Url" type="xs:string" use="optional"/>
   <xs:attribute name="UrlId" type="StringIdType" use="optional"/>
</xs:attributeGroup>

Task Element

The task is defined by its link and is either a Help topic, URL, or a command to run when the task is launched.

Attributes

 

ID

Not Required

The identifier of an existing task in Initial Configuration Tasks that will be modified.

The identifiers for the tasks are: AddRoles, AddFeatures, ComputerName, EnableUpdates, Firewall, InstallUpdates, Networking, RemoteDesktop, RestoreNetwork, and TimeZone

IconId

Not Required

The resource identifier for the icon to display for the task. The icon must be 24x24 pixels.

Hide

Not Required

Specifies whether to hide the task. By default, all tasks are shown.

TaskArguments

Not Required

Specialized parameters that are interpreted depending on the needs of each task. Currently only the Networking task uses this argument.

Specifies the number of network adapters to display before displaying "Multiple network adapters." The default is 2. Example: TaskArguments="5" will display up to five network connections.

Example

The following XML shows the task element schema definition.

<xs:complexType name="TaskType">
   <xs:attributeGroup ref="ActionLinkAttributes"/>
   <xs:attribute name="Id" type="TaskIdType" use="optional"/>
   <xs:attribute name="IconId" type="IconIdType" use="optional"/>
   <xs:attribute name="Hide" type="xs:boolean" use="optional"/>
   <xs:attribute name="TaskArguments" type="xs:string" use="optional"/>
</xs:complexType>

Additional Types

The following types are provided to clarify the range of values allowed for attributes.

 

StringID

An identifier that corresponds to a string in the DLL resources. The ID must be a non-negative integer.

ImageType

An identifier that corresponds to an image in the DLL resources. It is simply a string, but clarifies when an attribute is pointing to an image in the DLL's resources.

IconIdType

The resource identifier for a 24x24 pixel icon to display for a task.

ExtensionNameType

A name that allows the extension to be added to the out-of-box experience (called InitConfig) or one of the role home pages.

SectionIdTYpe

The identifiers for sections in Initial Configuration Tasks that can be modified.

TaskIdType

The identifiers for existing tasks in Initial Configuration Tasks that can be modified.

Example

The following example XML shows the additional types.

<xs:simpleType name="StringIdType">
   <xs:restriction base="xs:nonNegativeInteger"/>
</xs:simpleType>
<xs:simpleType name="ImageIdType">
   <xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="IconIdType">
   <xs:restriction base="xs:integer"/>
</xs:simpleType>
<xs:simpleType name="ExtensionNameType">
   <xs:restriction base="xs:string">
      <xs:enumeration value="InitConfig"/>
      <xs:enumeration value="ServerManagerHome"/>
      <xs:enumeration value="ManageRolesHome"/>
      <xs:enumeration value="AdamRole"/>
      <xs:enumeration value="ActiveDirectoryFederationServerRole"/>
      <xs:enumeration value="ApplicationServerRole"/>
      <xs:enumeration value="CertificateServerRole"/>
      <xs:enumeration value="DhcpServerRole"/>
      <xs:enumeration value="DnsServerRole"/>
      <xs:enumeration value="DomainControllerRole"/>
      <xs:enumeration value="FaxServerRole"/>
      <xs:enumeration value="FileServerRole"/>
      <xs:enumeration value="MediaServicesRole"/>
      <xs:enumeration value="NetworkAccessServicesRole"/>
      <xs:enumeration value="PrintServerRole"/>
      <xs:enumeration value="RightsManagementServicesRole"/>
      <xs:enumeration value="TerminalServicesRole"/>
      <xs:enumeration value="UddiServicesRole"/>
      <xs:enumeration value="WindowsDeploymentServicesRole"/>
      <xs:enumeration value="WebServerRole"/>
   </xs:restriction>
</xs:simpleType>
<xs:simpleType name="SectionIdType">
   <xs:restriction base="xs:string">
      <xs:enumeration value="1"/>
      <xs:enumeration value="2"/>
      <xs:enumeration value="3"/>
   </xs:restriction>
</xs:simpleType>
<xs:simpleType name="TaskIdType">
   <xs:restriction base="xs:string">
      <xs:enumeration value="AddRoles"/>
      <xs:enumeration value="AddFeatures"/>
      <xs:enumeration value="ComputerName"/>
      <xs:enumeration value="EnableUpdates"/>
      <xs:enumeration value="Firewall"/>
      <xs:enumeration value="InstallUpdates"/>
      <xs:enumeration value="Networking"/>
      <xs:enumeration value="RemoteDesktop"/>
      <xs:enumeration value="RestoreNetwork"/>
      <xs:enumeration value="TimeZone"/>
   </xs:restriction>
</xs:simpleType>

Errors and Conditions

There are a number of errors that the UI may encounter when it initializes with the OEM's data. In all cases, the UI ignores the errors and does not display any error messages in any form.

A detailed error message is written to a log file to help OEMs diagnose issues when they create their extensions. The log file is located in the "AppData" special folder in the subfolder \Microsoft\Windows\ServerManager\, in ServerUIExtensionErrors.log. For example, the full path on Windows Server® 2008 might be:

C:\users\MyUserName\AppData\Roaming\Microsoft\Windows\ServerManager\ServerUIExtensionErrors.log

The customized UI is not loaded if one of the following conditions exists:

  • The registry key is not found.
  • The registry key points to a file that does not exist.
  • The XML file cannot be parsed.
  • The XML points to an invalid resource DLL.

If the previous conditions are met, then the following conditional cases are exercised:

  • If a section title string resource does not load, nothing in the section is loaded.
  • If a help string resource does not load, the help link is not added.
  • If a help link does not specify at least one of the optional action link attributes, the help link is not added because there would not be a target.
  • If a task string resource does not load, the task is not added.
  • If a task does not specify at least one of the optional action link attributes, the task is not added.
  • If an optional attribute is specified and is expected to be loaded from the resources, it must be contained by the resources. If not, the help link or task will be skipped.
  • An extension is ignored if it has the same name as another extension that has already been loaded.
  • An extension is ignored if it does not have a name from the ExtensionNameType enumeration.

Localized Content

To provide localized versions of your custom resources, specify a path to the fallback DLL in the XML file by using the ResourceDllPath attribute.

Language-specific resources must be installed to subdirectories with the name of the culture that corresponds to the resources. The resource DLL is examined in the following order. In this example, the DLL that is specified in the XML is ResourceDllPath="%WINDIR%\system32\oem\Resource.dll":

  1. The current UI culture: %WINDIR%\system32\oem\en-US\Resource.dll
  2. The current UI neutral culture: %WINDIR%\system32\oem\en\Resource.dll
  3. The language-neutral resources: %WINDIR%\system32\oem\Resource.dll
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft