Problems with PowerPivot and Excel Service account

Aug 4, 2012 at 8:56 PM
Edited Aug 4, 2012 at 8:59 PM

I used AutoSPInstaller to install my farm (works great), thank you!

In summary i have the following problem with PowerPivot and wondering if it has something to do with the base config, it reports: PowerPivot dashboard reports Last successful refresh run: The cube has not been processed.

To advise on my actions once AutoSP finished I then installed PowerPivot 2012 and configured with the following script:

# Open PowerShell library from: C:\Program Files\Microsoft SQL Server\110\Tools\PowerPivotTools\ConfigurationTool\Resources\ConfigurePowerPivot.ps1
Add-SPSolution -LiteralPath 'C:\Program Files\Microsoft SQL Server\110\Tools\PowerPivotTools\ConfigurationTool\Resources\PowerPivotFarm.wsp'
Add-SPSolution -LiteralPath 'C:\Program Files\Microsoft SQL Server\110\Tools\PowerPivotTools\ConfigurationTool\Resources\PowerPivotWebApp.wsp'
DeployFarmSolution
DeployWebAppSolutionToCentralAdmin
Install-SPFeature -path PowerPivot
Install-SPFeature -path PowerPivotAdmin
Install-SPFeature -path PowerPivotSite
SetEngineServiceCredentials 'mydomain\SQL_PowerPivot' $password_PowerPivot; New-PowerPivotEngineServiceInstance -Provision:$true
New-PowerPivotSystemServiceInstance -Provision:$true
New-PowerPivotServiceApplication -ServiceApplicationName 'Default PowerPivot Service Application' -DatabaseServerName 'sharepoint' -DatabaseName 'SPA_DefaultPowerPivotServiceApplicationDB' -AddToDefaultProxyGroup:$true;Set-PowerPivotSystemService -WorkbookUpgradeOnDataRefresh:$False -Confirm:$false
DeployWebAppSolution 'http://intranet.mydom.local/' 2047
EnableSiteFeatures 'http://intranet.mydom.local' $true
CreateUnattendedAccountForDataRefresh 'http://intranet.mydom.local' 'PowerPivotUnattendedAccount' 'PowerPivot Unattended Account for Data Refresh' 'mydomain\SP_PowerPivotRefresh' $password_PowerPivotRefresh 
AddMSOLAP5AsECSTrustedProvider 'Excel Services Application'

I then logged into the Central Administration and went to the PowerPivot console where I received a wonderfully descriptive message 'Excel : An error has occured'.

I found this to be due to the application pool under which the Excel service runs did not have owner rights on the AdminContent database, providing db_owner rights to AdminContent database fixed this.

Ahtough I no longer get the Excel error pop up when entering the PowerPivot dashboard, I get no data and can see the status:  Last successful refresh run: The cube has not been processed!.

The same occurs even if I manually start the timed jobs, no dice.

I am following the PowerPivot install guide here

Advice appreciated otherwise it will be time to get on the phone to Microsoft and pay for their support. Is there a script that will do this for me?

Aug 4, 2012 at 8:57 PM
<?xml version="1.0" ?>
<!-- AutoSPInstaller Sample Configuration File
    General Instructions:
    1. If you use the characters ' " < > & in your configuration (e.g. in passwords) you should encode them as follows:

        '	&apos;
        "	&quot;
        <	&lt;
        >	&gt;
        &	&amp;
    
        For example <Password>Fd"je&f</Password> should be written <Password>Fd&quot;je&amp;f</Password>
    2. Configuration IS case sensitive.
    3. Use a validator like http://www.w3schools.com/xml/xml_validator.asp to check the syntax of your file.
    4. Any element that has a Provision="" attribute controls whether a particular component, site, or service is installed
       on a particular server. It can be set to either true to provision on every server on which the script is run,
       false to never provision, or to a list of computer names to provision the service only on the listed machines.
       This allows you to configure an entire multi-server farm with different servers fulfilling different roles
       using a single configuration file.
       e.g. <ExcelServices Provision="Server1 Server2"> would provision excel services only on Server1 and Server2. -->
<Configuration Environment="Dev" Version="3.0.3">
    <!-- The Environment attribute above appears at the top of the installation transcript. It does not affect the installation -->
    <!-- The Install section controls what modifications are made to the Windows OS prior to installation and how the SharePoint installation is run -->
    <Install>
        <!-- ConfigFile is the name of the file containing the unattended install settings for SharePoint's setup.exe
             You must put your product key in this file -->
        <ConfigFile>config.xml</ConfigFile>
        <!-- If true, the SharePoint prerequisite installer will install from the \SharePoint\PrerequisiteInstallerFiles folder.
             If false, the prerequisites will be downloaded during install. In order to use true you must obviously download all the prerequisites in advance.
             You can use a script like http://autospinstaller.codeplex.com/releases/view/44442 to quickly accomplish this -->
        <OfflineInstall>true</OfflineInstall>
        <!-- Set <PauseAfterInstall> to true in order to pause the script after the SharePoint binaries are installed.
             Useful for running the binary install simultaneously on multiple servers but stopping short of the farm config (which can cause conflicts if running on multiple servers at once) -->
        <PauseAfterInstall>false</PauseAfterInstall>
        <!-- Set RemoteInstall to true to attempt a centralized, remote install & config of your entire farm -->
        <RemoteInstall>false</RemoteInstall>
        <!-- ParallelInstall controls whether SharePoint binary file installs are triggered simultaneously on all servers in the farm. Can speed things up considerably (unless of course all your VMs are running on the same host, sharing I/O resources etc.!) -->
        <ParallelInstall>false</ParallelInstall>
        <Disable>
            <!-- Disables network loopback checks. This prevents the OS blocking access to your server under names other than its actual host name,
                 which SharePoint needs to do for WebDAV requests. -->
            <LoopbackCheck>true</LoopbackCheck>
            <!-- Disables windows services that are running by default on Windows 2008 that are not used by SharePoint to conserve resources -->
            <UnusedServices>true</UnusedServices>
            <!-- Switch off IE Enhanced Security configuration, so that your sites and Central Admin render properly in a browser on the server -->
            <IEEnhancedSecurity>true</IEEnhancedSecurity>
            <!-- Switch off checking whether the code-signing certificates used to sign the SharePoint code have been revoked. This slows down the
                 start up time for SharePoint, particularly if the server cannot connect to the Internet to perform the revocation check. -->
            <CertificateRevocationListCheck>false</CertificateRevocationListCheck>
        </Disable>
    </Install>
    <!-- The Farm section contains basic farm-wide settings -->
    <Farm>
        <!--Enter the passphase that will be used to join additional servers to the farm. This farm passphrase will also be used for the Secure Store service app-->
        <Passphrase>p@ss_none</Passphrase>
        <!-- The "Farm" account that will be used to run Central Administration and the timer service. If AddToLocalAdminsDuringSetup is true, it will be
             added to the server's local administrators group for the duration of the execution of the script. This is required for some steps, such as
             configuring the User Profile Synchronization service. If for some reason you need to leave the Farm account in the Administrators group after setup, set LeaveInLocalAdmins to true -->
        <Account AddToLocalAdminsDuringSetup="true" LeaveInLocalAdmins="false">
            <Username>mydomain\SP_Farm</Username>
            <Password>p@ss_none</Password>
            <Email>spfarm@mydomain.com</Email>
        </Account>
        <!-- Which server(s) to provision CentralAdmin on. Specify "true" or a list of servers -->
        <CentralAdmin Provision="true">
            <Database>AdminContent</Database>
            <Port>2010</Port>
            <UseSSL>true</UseSSL>
        </CentralAdmin>
        <Database>
            <!-- If you are creating an alias (recommended!), <DBServer> is actually the value of the SQL alias; otherwise it's the NetBIOS name of the SQL server or instance. 
                 If you leave <DBServer> blank or specify localhost, script will assume the local server for SQL databases -->
            <DBServer>sharepoint</DBServer>
            <!-- The script can create a SQL alias for you. Enter the DBInstance, and if you leave <DBPort> blank, script will assume default port value of 1433 -->
            <DBAlias Create="true"
                     DBInstance="sqlag1\MSSQLSERVER"
                     DBPort="1433" />
            <!-- The DBPrefix is prepended to all database names. e.g. If you set this to TEST, your config DB will be TEST_ConfigDB.
                 If you set the prefix to localhost, script will prepend each database with the name of the server on which the script is run. 
                 Leave this blank for no prefix.
                 NOTE: If you are installing a multi-server farm, it is recommended that you do not use localhost as services provisioned on different servers
                       will have different prefixes.
            -->
            <DBPrefix>SPA</DBPrefix>
            <!-- The name of the farm configuration database -->
            <ConfigDB>Config</ConfigDB>
        </Database>
        <!-- The Services section configures the core service instances & components that are part of SharePoint Foundation -->
        <Services>
            <SandboxedCodeService Start="false" />
            <ClaimsToWindowsTokenService Start="false" />
            <SMTP Install="false" />
            <OutgoingEmail Configure="false">
                <SMTPServer></SMTPServer>
                <EmailAddress></EmailAddress>
                <ReplyToEmail></ReplyToEmail>
            </OutgoingEmail>
        </Services>
        <!-- The ManagedAccounts section configures all accounts that will be added to SharePoint as managed accounts. -->
        <ManagedAccounts>
            <!-- The CommonName values should remain unchanged; you can add additional managed accounts, but script expects certain static values for these 4 managed accounts.
                 If you are creating additional web applications, use a new account for each web application with a new common name, unless you are creating a large number
                 of web applications, in which case the additional memory consumption this requires outweighs the security benefits. -->
            <ManagedAccount CommonName="spservice">
                <username>mydomain\SP_Services</username>
                <Password>p@ss_none</Password>
            </ManagedAccount>
            <ManagedAccount CommonName="portalapppool">
                <username>mydomain\SP_PortalAppPool</username>
                <Password>p@ss_none</Password>
            </ManagedAccount>
            <ManagedAccount CommonName="mysiteapppool">
                <username>mydomain\SP_ProfilesAppPool</username>
                <Password>p@ss_none</Password>
            </ManagedAccount>
            <ManagedAccount CommonName="searchservice">
                <username>mydomain\SP_SearchService</username>
                <Password>p@ss_none</Password>
            </ManagedAccount>
        </ManagedAccounts>
        <!-- The object cache accounts are user accounts that are given FullControl and FullRead privileges on WebApplications so items can be cached by ASP.Net to improve performance.
             These accounts should not have any special Active Directory privileges other than Domain User membership -->
        <ObjectCacheAccounts>
            <SuperUser>mydomain\SP_CacheSuperUser</SuperUser>
            <SuperReader>mydomain\SP_CacheSuperReader</SuperReader>
        </ObjectCacheAccounts>
        <!-- The <Logging> section allows you to move various log files to another location / volume, per best practices and to control disk space usage on the (default) C: drive.
             It also allows you to specify some logging options, such as using NTFS compression for additional disk space savings.
             The <Path> for all log types will be created if it doesn't yet exist. However, the root (drive, e.g. D:) must obviously pre-exist - and on ALL servers in your farm. -->
        <Logging>
            <IISLogs Compress="true">
                <!-- The default <Path> is $Env:SystemDrive\Inetpub\logs\LogFiles - enter another path (e.g. D:\IISLogs) or leave <Path> empty to use the default. -->
                <Path></Path>
            </IISLogs>
            <ULSLogs Compress="true">
                <!-- The default <LogLocation> is $Env:CommonProgramFiles\Microsoft Shared\Web Server Extensions\LOGS - enter another path (e.g. D:\Logs) or leave <LogLocation> empty to use the default. -->
                <LogLocation></LogLocation>
                <!-- <LogDiskSpaceUsageGB> specifies the maximum amount of disk space (GB) to use. If you specify a value here, LogMaxDiskSpaceUsageEnabled will automatically be set to True.
                     Leave empty to use the default values (1000 GB, but with LogMaxDiskSpaceUsageEnabled set to False - so effectively NO restriction on disk space) -->
                <LogDiskSpaceUsageGB></LogDiskSpaceUsageGB>
                <!-- <DaysToKeepLogs> specifies the time, in days, to retain diagnostic log files. Leave empty to use the default (14 days). -->
                <DaysToKeepLogs></DaysToKeepLogs>
                <!-- <LogCutInterval> specifies the time, in minutes, before a new log file is generated. Leave empty to use the default (30 minutes). -->
                <LogCutInterval></LogCutInterval>
            </ULSLogs>
            <UsageLogs Compress="true">
                <!-- The default <UsageLogDir> is $Env:CommonProgramFiles\Microsoft Shared\Web Server Extensions\LOGS - enter another path (e.g. D:\Logs) or leave <UsageLogDir> empty to use the default. -->
                <UsageLogDir></UsageLogDir>
                <!-- <UsageLogMaxSpaceGB> must be between 1 and 20 GB. Leave empty to use the default (5 GB) -->
                <UsageLogMaxSpaceGB></UsageLogMaxSpaceGB>
                <!-- <UsageLogCutTime> specifies the time, in minutes, of usage data collected per usage log file (acceptable values are between 1 and 1440, default 5). Leave empty to use the default. -->
                <UsageLogCutTime></UsageLogCutTime>
            </UsageLogs>
        </Logging>
    </Farm>
    <!-- The WebApplications section configures the applications and sites that will be created. You can add additional <WebApplication> child tags to create extra web applications.
         The AddURLsToHOSTS flag will add all Alternate Access Mappings to the local server's HOSTS file and is useful if you are (for example):
         creating web apps whose URLs are not defined in DNS yet, a test farm, or if you are creating a DR farm, etc. -->
    <WebApplications AddURLsToHOSTS="true">
        <!-- Web application attributes are as follows:
        type:
            "Portal" is the primary site. Exactly one WebApplication should have this type. It is setup as a trusted file location 
            for Excel services, and as the portal site connection for other site collections. The script also uses it internally
            when it requires the URL of an arbitrary site.
            "MySiteHost" is the host web application for mysites.
            Any additional web applications that you create should have a type of your own choice such as "Other"
        name: Name of the web application
        applicationPool: Application pool name
        applicationPoolAccount: DOMAIN\USERNAME of the account under which the application pool runs. This should be a managed account.
        url: URL of the root site collection in the application pool. Do not include the port number, but do set http/https correctly.
        port: Port on which the web application runs.
        databaseName: Name of the first content database.
        useClaims: false = disable claims based authentication. true = enable claims based authentication.
        useBasicAuthentication: false = only accept Kerberos/NTLM claims. true = also accept Basic authentication claims. Has no effect if useClaims is false.
        useOnlineWebPartCatalog: false = disable use of the online webpart gallery on the web application. true (default) enable it. -->
        <WebApplication type="Portal"
                        name="Portal Home"
                        applicationPool="PortalHome"
                        applicationPoolAccount="mydomain\SP_PortalAppPool"
                        url="http://intranet.mydomain.com"
                        port="80"
                        AddURLToLocalIntranetZone="true"
                        databaseName="PortalHome_Content"
                        useClaims="false"
                        useBasicAuthentication="false"
                        useOnlineWebPartCatalog="false">
            <!-- You can now specify a different DB server/instance or alias per web application and service application. The behavior is slightly different than with the farm DB server though, see below. -->
            <Database>
                <!-- If you are creating an alias (recommended!), <DBServer> is actually the value of the SQL alias; otherwise it's the NetBIOS name of the SQL server or instance. 
                     If you leave <DBServer> blank, the default DBServer value for the farm is used -->
                <DBServer></DBServer>
                <!-- The script can create a SQL alias for you. Enter the DBInstance, and if you leave <DBPort> blank, script will assume default port value of 1433 -->
                <DBAlias Create="false"
                         DBInstance="SERVER\INSTANCE"
                         DBPort="" />
            </Database>
            <ManagedPaths>
                <ManagedPath relativeUrl="help" explicit="true" />
            </ManagedPaths>
            <SiteCollections>
                <!-- You can specify multiple site collections within a web application.
                siteUrl: URL of the site collection. Include the port if it is non default for the protocol (80/443). Do not include default ports as this will make the script fail.
                owner: Site collection owner account.
                name: Name/title of the site collection.
                description: Description of the site collection.
                SearchUrl: URL of the search site. This may be in another web application / site collection.
                CustomTemplate: Set to true if a custom template is to be used.
                Template: Name of the template to use.
                LCID: Locale ID of the language pack to use for the site collection.
                Locale: Actual locale of the site for regional settings. e.g. for UK English you use the US English LCID of 1033 but the locale en-gb.
                        If omitted, the default locale of the LCID is used.
                Time24: If true, times are displayed using a 24 hour clock. If false, AM/PM is used. If omitted, the default for the LCID is applied. -->
                <SiteCollection siteUrl="http://intranet.mydomain.com"
                                owner="mydomain\SP_PortalAppPool"
                                name="Portal Home"
                                description="Portal Home Site"
                                SearchUrl="http://intranet.mydomain.com/search"
                                CustomTemplate="false"
                                Template="SPSPORTAL#0"
                                LCID="1033"
                                Locale="en-us"
                                Time24="false">
                </SiteCollection>
            </SiteCollections>
        </WebApplication>
        <WebApplication type="MySiteHost"
                        name="MySite Host"
                        applicationPool="MySites"
                        applicationPoolAccount="mydomain\SP_ProfilesAppPool"
                        url="http://intranet.mydomain.com"
                        port="8080"
                        AddURLToLocalIntranetZone="true"
                        databaseName="MySites_Content"
                        useClaims="false"
                        useBasicAuthentication="false"
                        useOnlineWebPartCatalog="false">
            <!-- You can now specify a different DB server/instance or alias per web application and service application. The behavior is slightly different than with the farm DB server though, see below. -->
            <Database>
                <!-- If you are creating an alias (recommended!), <DBServer> is actually the value of the SQL alias; otherwise it's the NetBIOS name of the SQL server or instance. 
                     If you leave <DBServer> blank, the default DBServer value for the farm is used -->
                <DBServer></DBServer>
                <!-- The script can create a SQL alias for you. Enter the DBInstance, and if you leave <DBPort> blank, script will assume default port value of 1433 -->
                <DBAlias Create="false"
                         DBInstance="SERVER\INSTANCE"
                         DBPort="" />
            </Database>
            <ManagedPaths>
                <ManagedPath relativeUrl="personal" explicit="false"/>
            </ManagedPaths>
            <SiteCollections>
                <SiteCollection siteUrl="http://intranet.mydomain.com:8080"
                                owner="mydomain\SP_ProfilesAppPool"
                                name="My Site Host"
                                description="My Site Host"
                                SearchUrl="http://intranet.mydomain.com/search"
                                CustomTemplate="false"
                                Template="SPSMSITEHOST#0"
                                LCID="1033"
                                Locale="en-us"
                                Time24="false">
                </SiteCollection>
            </SiteCollections>
        </WebApplication>
    </WebApplications>
    <!-- The ServiceApps section configures service applications included in the standard SharePoint licence.
        Common Attributes:
        Provision: Whether/which servers to provision the service application on
        Name: Name of the application
        ProxyName: name of the application proxy -->
    <ServiceApps>
        <ManagedMetadataServiceApp Provision="true"
                                   Name="Managed Metadata Service"
                                   ProxyName="Managed Metadata Service">
            <!-- You can specify a different DB server/instance or alias per web application and service application. The behavior is slightly different than with the farm DB server though, see below. -->
            <Database>
                <!-- <Name> designates the suffix portion of the database name. For example if your DBPrefix (above) was "SPFarm", and the name below was "ServiceApp", your full DB name would be "SharePoint_ServiceApp" -->
                <Name>MetaData</Name>
                <!-- If you are creating an alias (recommended!), <DBServer> is actually the value of the SQL alias; otherwise it's the NetBIOS name of the SQL server or instance. 
                     If you leave <DBServer> blank, the default DBServer value for the farm is used -->
                <DBServer></DBServer>
                <!-- The script can create a SQL alias for you. Enter the DBInstance, and if you leave <DBPort> blank, script will assume default port value of 1433 -->
                <DBAlias Create="false"
                         DBInstance="SERVER\INSTANCE"
                         DBPort="" />
            </Database>
        </ManagedMetadataServiceApp>
        <!-- EnableNetBIOSDomainName should be set to true if the host portion of your DNS Domain name is different than your NetBIOS domain name.
             To provision the User Profile Synchronization service, the value of StartProfileSync should be set to "true".
             NOTE: If this is set to "true" in a multi-server farm, the first server that gets the User Profile Service installed on it will also have Profile Sync provisioned on it.
             If you are running SP2010 SP1, you can set CreateDefaultSyncConnection to true and specify the SyncConnectionAccount credentials; 
             the script will attempt to create a default Sync connection using the new (although unsupported) Add-SPProfileSyncConnection cmdlet.
             NOTE: Add-SPProfileSyncConnection may be useful for experimental/non-production builds but as per http://www.harbar.net/archive/2011/07/12/332.aspx it's UNSUPPORTED in on-premises deployments -->
        <UserProfileServiceApp Provision="true"
                               Name="User Profile Service Application"
                               ProxyName="User Profile Service Application"
                               EnableNetBIOSDomainNames="false"
                               StartProfileSync="true"
                               CreateDefaultSyncConnection="false"
                               SyncConnectionAccount="mydomain\SP_ProfileSync"
                               SyncConnectionAccountPassword="p@ss_none" >
            <!-- You can specify a different DB server/instance or alias per web application and service application. The behavior is slightly different than with the farm DB server though, see below. -->
            <Database>
                <!-- <*DB> below designates the suffix portion of the database name. For example if your DBPrefix (above) was "SPFarm", and the name below was "ServiceApp", your full DB name would be "SharePoint_ServiceApp" -->
                <ProfileDB>Profile</ProfileDB>
                <SyncDB>Sync</SyncDB>
                <SocialDB>Social</SocialDB>
                <!-- If you are creating an alias (recommended!), <DBServer> is actually the value of the SQL alias; otherwise it's the NetBIOS name of the SQL server or instance. 
                     If you leave <DBServer> blank, the default DBServer value for the farm is used -->
                <DBServer></DBServer>
                <!-- The script can create a SQL alias for you. Enter the DBInstance, and if you leave <DBPort> blank, script will assume default port value of 1433 -->
                <DBAlias Create="false"
                         DBInstance="SERVER\INSTANCE"
                         DBPort="" />
            </Database>
        </UserProfileServiceApp>
        <EnterpriseSearchService Provision="true"
                                 ContactEmail=""
                                 ConnectionTimeout="60"
                                 AcknowledgementTimeout="60"
                                 ProxyType="Default"
                                 IgnoreSSLWarnings="false"
                                 InternetIdentity="Mozilla/4.0 (compatible; MSIE 4.01; Windows NT; MS Search 6.0 Robot)"
                                 IndexLocation="C:\Program Files\Microsoft Office Servers\14.0\Data\Office Server\Applications"
                                 PerformanceLevel="PartlyReduced"
                                 Account="mydomain\SP_SearchService"
                                 Password="p@ss_none"
                                 ShareName="SearchIndex">
            <EnterpriseSearchServiceApplications>
                <EnterpriseSearchServiceApplication Name="Search Service Application"
                                                    DatabaseServer="sharepoint"
                                                    DatabaseName="Search"
                                                    FailoverDatabaseServer=""
                                                    Partitioned="false"
                                                    Partitions="1"
                                                    SearchServiceApplicationType="Regular"
                                                    ContentAccessAccount="mydomain\SP_SearchContent"
                                                    ContentAccessAccountPassword="p@ss_none">
                    <ApplicationPool Name="SharePoint Search Application Pool" Account="mydomain\SP_SearchService" Password="p@ss_none" />
                    <CrawlServers>
                        <Server Name="localhost" />
                    </CrawlServers>
                    <QueryServers>
                        <Server Name="localhost" />
                    </QueryServers>
                    <!-- You should specify all the servers you listed in QueryServers in the SearchQueryAndSiteSettingsServers node below as well -->
                    <SearchQueryAndSiteSettingsServers>
                        <Server Name="localhost" />
                    </SearchQueryAndSiteSettingsServers>
                    <!-- You can only run the AdminComponent on one server per Search Service App, so only list one server here -->
                    <AdminComponent>
                        <Server Name="localhost" />
                        <ApplicationPool Name="SharePoint Search Application Pool" Account="mydomain\SP_SearchService" />
                    </AdminComponent>
                    <Proxy Name="Search Service Application" Partitioned="false">
                        <ProxyGroup Name="Default" />
                    </Proxy>
                </EnterpriseSearchServiceApplication>
            </EnterpriseSearchServiceApplications>
        </EnterpriseSearchService>
        <StateService Provision="true"
                      Name="State Service"
                      ProxyName="State Service">
            <!-- You can specify a different DB server/instance or alias per web application and service application. The behavior is slightly different than with the farm DB server though, see below. -->
            <Database>
                <!-- <Name> designates the suffix portion of the database name. For example if your DBPrefix (above) was "SPFarm", and the name below was "ServiceApp", your full DB name would be "SharePoint_ServiceApp" -->
                <Name>StateService</Name>
                <!-- If you are creating an alias (recommended!), <DBServer> is actually the value of the SQL alias; otherwise it's the NetBIOS name of the SQL server or instance. 
                     If you leave <DBServer> blank, the default DBServer value for the farm is used -->
                <DBServer></DBServer>
                <!-- The script can create a SQL alias for you. Enter the DBInstance, and if you leave <DBPort> blank, script will assume default port value of 1433 -->
                <DBAlias Create="false"
                         DBInstance="SERVER\INSTANCE"
                         DBPort="" />
            </Database>
        </StateService>
        <!--If you want to provision the WebAnalyticsService then you should also ensure that StateService Provision="true" as well-->
        <WebAnalyticsService Provision="true"
                             Name="Web Analytics Service Application">
            <!-- You can specify a different DB server/instance or alias per web application and service application. The behavior is slightly different than with the farm DB server though, see below. -->
            <Database>
                <!-- <*DB> designates the suffix portion of the database name. For example if your DBPrefix (above) was "SPFarm", and the name below was "ServiceApp", your full DB name would be "SharePoint_ServiceApp" -->
                <ReportingDB>WebAnalyticsReporting</ReportingDB>
                <StagingDB>WebAnalyticsStaging</StagingDB>
                <!-- If you are creating an alias (recommended!), <DBServer> is actually the value of the SQL alias; otherwise it's the NetBIOS name of the SQL server or instance. 
                     If you leave <DBServer> blank, the default DBServer value for the farm is used -->
                <DBServer></DBServer>
                <!-- The script can create a SQL alias for you. Enter the DBInstance, and if you leave <DBPort> blank, script will assume default port value of 1433 -->
                <DBAlias Create="false"
                         DBInstance="SERVER\INSTANCE"
                         DBPort="" />
            </Database>
        </WebAnalyticsService>
        <SPUsageService Provision="true"
                        Name="Usage and Health Data Collection">
            <!-- You can specify a different DB server/instance or alias per web application and service application. The behavior is slightly different than with the farm DB server though, see below. -->
            <Database>
                <!-- <Name> designates the suffix portion of the database name. For example if your DBPrefix (above) was "SPFarm", and the name below was "ServiceApp", your full DB name would be "SharePoint_ServiceApp" -->
                <Name>UsageAndHealth</Name>
                <!-- If you are creating an alias (recommended!), <DBServer> is actually the value of the SQL alias; otherwise it's the NetBIOS name of the SQL server or instance. 
                     If you leave <DBServer> blank, the default DBServer value for the farm is used -->
                <DBServer></DBServer>
                <!-- The script can create a SQL alias for you. Enter the DBInstance, and if you leave <DBPort> blank, script will assume default port value of 1433 -->
                <DBAlias Create="false"
                         DBInstance="SERVER\INSTANCE"
                         DBPort="" />
            </Database>
        </SPUsageService>
        <SecureStoreService Provision="true"
                            Name="Secure Store Service"
                            ProxyName="Secure Store Service">
            <!-- You can specify a different DB server/instance or alias per web application and service application. The behavior is slightly different than with the farm DB server though, see below. -->
            <Database>
                <!-- <Name> designates the suffix portion of the database name. For example if your DBPrefix (above) was "SPFarm", and the name below was "ServiceApp", your full DB name would be "SharePoint_ServiceApp" -->
                <Name>SecureStore</Name>
                <!-- If you are creating an alias (recommended!), <DBServer> is actually the value of the SQL alias; otherwise it's the NetBIOS name of the SQL server or instance. 
                     If you leave <DBServer> blank, the default DBServer value for the farm is used -->
                <DBServer></DBServer>
                <!-- The script can create a SQL alias for you. Enter the DBInstance, and if you leave <DBPort> blank, script will assume default port value of 1433 -->
                <DBAlias Create="false"
                         DBInstance="SERVER\INSTANCE"
                         DBPort="" />
            </Database>
        </SecureStoreService>
        <BusinessDataConnectivity Provision="true"
                                  Name="Business Data Connectivity Service"
                                  ProxyName="Business Data Connectivity Service">
            <!-- You can specify a different DB server/instance or alias per web application and service application. The behavior is slightly different than with the farm DB server though, see below. -->
            <Database>
                <!-- <Name> designates the suffix portion of the database name. For example if your DBPrefix (above) was "SPFarm", and the name below was "ServiceApp", your full DB name would be "SharePoint_ServiceApp" -->
                <Name>BusinessDataCatalog</Name>
                <!-- If you are creating an alias (recommended!), <DBServer> is actually the value of the SQL alias; otherwise it's the NetBIOS name of the SQL server or instance. 
                     If you leave <DBServer> blank, the default DBServer value for the farm is used -->
                <DBServer></DBServer>
                <!-- The script can create a SQL alias for you. Enter the DBInstance, and if you leave <DBPort> blank, script will assume default port value of 1433 -->
                <DBAlias Create="false"
                         DBInstance="SERVER\INSTANCE"
                         DBPort="" />
            </Database>
        </BusinessDataConnectivity>
        <WordAutomationService Provision="true"
                               Name="Word Automation Services"
                               ProxyName="Word Automation Services">
            <!-- You can specify a different DB server/instance or alias per web application and service application. The behavior is slightly different than with the farm DB server though, see below. -->
            <Database>
                <!-- <Name> designates the suffix portion of the database name. For example if your DBPrefix (above) was "SPFarm", and the name below was "ServiceApp", your full DB name would be "SharePoint_ServiceApp" -->
                <Name>WordAutomation</Name>
                <!-- If you are creating an alias (recommended!), <DBServer> is actually the value of the SQL alias; otherwise it's the NetBIOS name of the SQL server or instance. 
                     If you leave <DBServer> blank, the default DBServer value for the farm is used -->
                <DBServer></DBServer>
                <!-- The script can create a SQL alias for you. Enter the DBInstance, and if you leave <DBPort> blank, script will assume default port value of 1433 -->
                <DBAlias Create="false"
                         DBInstance="SERVER\INSTANCE"
                         DBPort="" />
            </Database>
        </WordAutomationService>
    </ServiceApps>
    <!-- The EnterpriseSeviceApps section configures services only available with an Enterprise licence.
         Common Attributes:
         UnattendedIDUser: DOMAIN\UserName of the unattended user account. This does not have to be SharePoint managed account, and the same account can be re-used for all services.
         UnattendedIDPassword: Password of the unattended user account.	-->
    <EnterpriseServiceApps>
        <ExcelServices Provision="true"
                       Name="Excel Services Application"
                       UnattendedIDUser="mydomain\SP_ExcelUser"
                       UnattendedIDPassword="p@ss_none">
        </ExcelServices>
        <VisioService Provision="true"
                      Name="Visio Graphics Service"
                      ProxyName="Visio Graphics Service"
                      UnattendedIDUser="mydomain\SP_VisioUser"
                      UnattendedIDPassword="p@ss_none">
        </VisioService>
        <AccessService Provision="true"
                       Name="Access Services"
                       ProxyName="Access Services">
        </AccessService>
        <!-- If you choose to provision Performance Point Services, the user running the script must be in the sysadmin role of the SQL server whilst the script runs. This can be revoked afterwards. -->
        <PerformancePointService Provision="true"
                      Name="PerformancePoint Service"
                      ProxyName="PerformancePoint Service"
                      UnattendedIDUser="mydomain\SP_PerfPointUser"
                      UnattendedIDPassword="p@ss_none">
            <!-- You can specify a different DB server/instance or alias per web application and service application. The behavior is slightly different than with the farm DB server though, see below. -->
            <Database>
                <!-- <Name> designates the suffix portion of the database name. For example if your DBPrefix (above) was "SPFarm", and the name below was "ServiceApp", your full DB name would be "SharePoint_ServiceApp" -->
                <Name>PerformancePoint</Name>
                <!-- If you are creating an alias (recommended!), <DBServer> is actually the value of the SQL alias; otherwise it's the NetBIOS name of the SQL server or instance. 
                     If you leave <DBServer> blank, the default DBServer value for the farm is used -->
                <DBServer></DBServer>
                <!-- The script can create a SQL alias for you. Enter the DBInstance, and if you leave <DBPort> blank, script will assume default port value of 1433 -->
                <DBAlias Create="false"
                         DBInstance="SERVER\INSTANCE"
                         DBPort="" />
            </Database>
        </PerformancePointService>
    </EnterpriseServiceApps>
    <!-- The OfficeWebApps section controls the installation of Office Web Apps. Setting Install="true" requires the office web apps installation files to be present.
         Note: OfficeWebApps Install can only be "true" or "false" - server names are not supported here because it's all or nothing for OWA in a farm -->
    <OfficeWebApps Install="false"
                   ConfigFile="config-OWA.xml">
        <ExcelService Provision="false"
                      Name="Excel Web App"
                      ProxyName="Excel Web App"
                      UnattendedIDUser="mydomain\SP_ExcelUser"
                      UnattendedIDPassword="">
        </ExcelService>
        <WordViewingService Provision="false"
                            Name="Word Viewing Service"
                            ProxyName="Word Viewing Service">
        </WordViewingService>
        <PowerPointService Provision="false"
                           Name="PowerPoint Service Application"
                           ProxyName="PowerPoint Service Application">
        </PowerPointService>
    </OfficeWebApps>
    <!-- The AdobePDF section can install the Adobe PDF iFilter and configure the search indexer to use it, plus add the proper icon for .pdf files in SharePoint.
         Also, we can configure SharePoint web app MIME type associations to allow direct opening of PDF files (instead of the default behavior of only allowing 'save as') -->
    <AdobePDF>
        <!-- The iFilter element supports a comma- or space-delimited list of server names on which to install the PDF iFilter. Useful if you want to selectively install ONLY on crawl servers, for example. -->
        <iFilter Install="true" />
        <!-- Both the Icon and MIMEType elements support only "true" or "false"; you probably would want the icon on all farm servers, and MIMEType is a web app-wide setting anyhow, not bound to specific servers -->
        <Icon Configure="true" />
        <MIMEType Configure="true"/>
    </AdobePDF>
    <!-- Install ForeFront Protection for SharePoint 2010.
         Configuration and licensing of ForeFront is performed by running its administration program from the Start Menu after installation. -->
    <ForeFront Install="false"
               ConfigFile="answerfile-ForeFront.xml" />
</Configuration>