diff --git a/Modules/xSharePoint/Examples/Single Server/SharePoint.ps1 b/Modules/xSharePoint/Examples/Single Server/SharePoint.ps1
new file mode 100644
index 000000000..fbce04c29
--- /dev/null
+++ b/Modules/xSharePoint/Examples/Single Server/SharePoint.ps1
@@ -0,0 +1,406 @@
+Configuration SharePointServer
+{
+ param (
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $CredSSPDelegates,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $SPBinaryPath,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $ULSViewerPath,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $SPBinaryPathCredential,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $FarmAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $InstallAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $ProductKey,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $DatabaseServer,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $FarmPassPhrase,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $WebPoolManagedAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $ServicePoolManagedAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $WebAppUrl,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $TeamSiteUrl,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $MySiteHostUrl,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [int] $CacheSizeInMB
+ )
+ Import-DscResource -ModuleName xSharePoint
+ Import-DscResource -ModuleName xWebAdministration
+ Import-DscResource -ModuleName xCredSSP
+ Import-DscResource -ModuleName xDisk
+
+ node "localhost"
+ {
+ #**********************************************************
+ # Server configuration
+ #
+ # This section of the configuration includes details of the
+ # server level configuration, such as disks, registry
+ # settings etc.
+ #**********************************************************
+
+ xDisk LogsDisk { DiskNumber = 2; DriveLetter = "l" }
+ xDisk IndexDisk { DiskNumber = 3; DriveLetter = "i" }
+ xCredSSP CredSSPServer { Ensure = "Present"; Role = "Server" }
+ xCredSSP CredSSPClient { Ensure = "Present"; Role = "Client"; DelegateComputers = $CredSSPDelegates }
+
+
+ #**********************************************************
+ # Software downloads
+ #
+ # This section details where any binary downloads should
+ # be downloaded from and put locally on the server before
+ # installation takes place
+ #**********************************************************
+
+ File SPBinaryDownload
+ {
+ DestinationPath = "C:\SPInstall"
+ Credential = $SPBinaryPathCredential
+ Ensure = "Present"
+ SourcePath = $SPBinaryPath
+ Type = "Directory"
+ Recurse = $true
+ }
+ File UlsViewerDownload
+ {
+ DestinationPath = "L:\UlsViewer.exe"
+ Credential = $SPBinaryPathCredential
+ Ensure = "Present"
+ SourcePath = $ULSViewerPath
+ Type = "File"
+ DependsOn = "[xDisk]LogsDisk"
+ }
+
+ #**********************************************************
+ # Binary installation
+ #
+ # This section triggers installation of both SharePoint
+ # as well as the prerequisites required
+ #**********************************************************
+ xSPClearRemoteSessions ClearRemotePowerShellSessions
+ {
+ ClearRemoteSessions = $true
+ }
+ xSPInstallPrereqs InstallPrerequisites
+ {
+ InstallerPath = "C:\SPInstall\Prerequisiteinstaller.exe"
+ OnlineMode = $true
+ SQLNCli = "C:\SPInstall\prerequisiteinstallerfiles\sqlncli.msi"
+ PowerShell = "C:\SPInstall\prerequisiteinstallerfiles\Windows6.1-KB2506143-x64.msu"
+ NETFX = "C:\SPInstall\prerequisiteinstallerfiles\dotNetFx45_Full_setup.exe"
+ IDFX = "C:\SPInstall\prerequisiteinstallerfiles\Windows6.1-KB974405-x64.msu"
+ Sync = "C:\SPInstall\prerequisiteinstallerfiles\Synchronization.msi"
+ AppFabric = "C:\SPInstall\prerequisiteinstallerfiles\WindowsServerAppFabricSetup_x64.exe"
+ IDFX11 = "C:\SPInstall\prerequisiteinstallerfiles\MicrosoftIdentityExtensions-64.msi"
+ MSIPCClient = "C:\SPInstall\prerequisiteinstallerfiles\setup_msipc_x64.msi"
+ WCFDataServices = "C:\SPInstall\prerequisiteinstallerfiles\WcfDataServices.exe"
+ KB2671763 = "C:\SPInstall\prerequisiteinstallerfiles\AppFabric1.1-RTM-KB2671763-x64-ENU.exe"
+ WCFDataServices56 = "C:\SPInstall\prerequisiteinstallerfiles\WcfDataServices56.exe"
+ DependsOn = "[xSPClearRemoteSessions]ClearRemotePowerShellSessions"
+ }
+ xSPInstall InstallBinaries
+ {
+ BinaryDir = "C:\SPInstall"
+ ProductKey = $ProductKey
+ DependsOn = "[xSPInstallPrereqs]InstallPrerequisites"
+ }
+
+ #**********************************************************
+ # IIS clean up
+ #
+ # This section removes all default sites and application
+ # pools from IIS as they are not required
+ #**********************************************************
+
+ xWebAppPool RemoveDotNet2Pool { Name = ".NET v2.0"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebAppPool RemoveDotNet2ClassicPool { Name = ".NET v2.0 Classic"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebAppPool RemoveDotNet45Pool { Name = ".NET v4.5"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites"; }
+ xWebAppPool RemoveDotNet45ClassicPool { Name = ".NET v4.5 Classic"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites"; }
+ xWebAppPool RemoveClassicDotNetPool { Name = "Classic .NET AppPool"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebAppPool RemoveDefaultAppPool { Name = "DefaultAppPool"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebSite RemoveDefaultWebSite { Name = "Default Web Site"; Ensure = "Absent"; PhysicalPath = "C:\inetpub\wwwroot"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+
+
+ #**********************************************************
+ # Basic farm configuration
+ #
+ # This section creates the new SharePoint farm object, and
+ # provisions generic services and components used by the
+ # whole farm
+ #**********************************************************
+
+ xSPCreateFarm CreateSPFarm
+ {
+ DatabaseServer = $DatabaseServer
+ FarmConfigDatabaseName = "SP_Config"
+ Passphrase = $FarmPassPhrase
+ FarmAccount = $FarmAccount
+ InstallAccount = $InstallAccount
+ AdminContentDatabaseName = "SP_AdminContent"
+ DependsOn = "[xSPInstall]InstallBinaries"
+ }
+ xSPManagedAccount ServicePoolManagedAccount
+ {
+ AccountName = $ServicePoolManagedAccount.UserName
+ Account = $ServicePoolManagedAccount
+ Schedule = ""
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPManagedAccount WebPoolManagedAccount
+ {
+ AccountName = $WebPoolManagedAccount.UserName
+ Account = $WebPoolManagedAccount
+ Schedule = ""
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPDiagnosticLoggingSettings ApplyDiagnosticLogSettings
+ {
+ InstallAccount = $InstallAccount
+ LogPath = "L:\ULSLogs"
+ LogSpaceInGB = 10
+ AppAnalyticsAutomaticUploadEnabled = $false
+ CustomerExperienceImprovementProgramEnabled = $true
+ DaysToKeepLogs = 7
+ DownloadErrorReportingUpdatesEnabled = $false
+ ErrorReportingAutomaticUploadEnabled = $false
+ ErrorReportingEnabled = $false
+ EventLogFloodProtectionEnabled = $true
+ EventLogFloodProtectionNotifyInterval = 5
+ EventLogFloodProtectionQuietPeriod = 2
+ EventLogFloodProtectionThreshold = 5
+ EventLogFloodProtectionTriggerPeriod = 2
+ LogCutInterval = 15
+ LogMaxDiskSpaceUsageEnabled = $true
+ ScriptErrorReportingDelay = 30
+ ScriptErrorReportingEnabled = $true
+ ScriptErrorReportingRequireAuth = $true
+ DependsOn = @("[xSPCreateFarm]CreateSPFarm", "[xDisk]LogsDisk")
+ }
+ xSPUsageApplication UsageApplication
+ {
+ Name = "Usage Service Application"
+ DatabaseName = "SP_Usage"
+ UsageLogCutTime = 5
+ UsageLogLocation = "L:\UsageLogs"
+ UsageLogMaxFileSizeKB = 1024
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPStateServiceApp StateServiceApp
+ {
+ Name = "State Service Application"
+ DatabaseName = "SP_State"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPDistributedCacheService EnableDistributedCache
+ {
+ Name = "AppFabricCachingService"
+ Ensure = "Present"
+ CacheSizeInMB = $CacheSizeInMB
+ ServiceAccount = $ServicePoolManagedAccount.UserName
+ InstallAccount = $InstallAccount
+ DependsOn = @('[xSPCreateFarm]CreateSPFarm','[xSPManagedAccount]ServicePoolManagedAccount')
+ }
+
+ #**********************************************************
+ # Web applications
+ #
+ # This section creates the web applications in the
+ # SharePoint farm, as well as managed paths and other web
+ # application settings
+ #**********************************************************
+
+ xSPWebApplication HostNameSiteCollectionWebApp
+ {
+ Name = "SharePoint Sites"
+ ApplicationPool = "SharePoint Sites"
+ ApplicationPoolAccount = $WebPoolManagedAccount.UserName
+ AllowAnonymous = $false
+ AuthenticationMethod = "NTLM"
+ DatabaseName = "SP_Content_01"
+ DatabaseServer = $DatabaseServer
+ Url = $WebAppUrl
+ Port = 80
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPManagedAccount]WebPoolManagedAccount"
+ }
+ xSPManagedPath TeamsManagedPath
+ {
+ WebAppUrl = "http://$WebAppUrl"
+ InstallAccount = $InstallAccount
+ RelativeUrl = "teams"
+ Explicit = $false
+ HostHeader = $true
+ DependsOn = "[xSPWebApplication]HostNameSiteCollectionWebApp"
+ }
+ xSPManagedPath PersonalManagedPath
+ {
+ WebAppUrl = "http://$WebAppUrl"
+ InstallAccount = $InstallAccount
+ RelativeUrl = "personal"
+ Explicit = $false
+ HostHeader = $true
+ DependsOn = "[xSPWebApplication]HostNameSiteCollectionWebApp"
+ }
+ xSPCacheAccounts SetCacheAccounts
+ {
+ WebAppUrl = "http://$WebAppUrl"
+ SuperUserAlias = "DEMO\svxSPSuperUser"
+ SuperReaderAlias = "DEMO\svxSPReader"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPWebApplication]HostNameSiteCollectionWebApp"
+ }
+
+ #**********************************************************
+ # Service instances
+ #
+ # This section describes which services should be running
+ # and not running on the server
+ #**********************************************************
+
+ xSPServiceInstance ClaimsToWindowsTokenServiceInstance
+ {
+ Name = "Claims to Windows Token Service"
+ Ensure = "Present"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPServiceInstance UserProfileServiceInstance
+ {
+ Name = "User Profile Service"
+ Ensure = "Present"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPServiceInstance SecureStoreServiceInstance
+ {
+ Name = "Secure Store Service"
+ Ensure = "Present"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPServiceInstance ManagedMetadataServiceInstance
+ {
+ Name = "Managed Metadata Web Service"
+ Ensure = "Present"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPServiceInstance BCSServiceInstance
+ {
+ Name = "Business Data Connectivity Service"
+ Ensure = "Present"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPUserProfileSyncService UserProfileSyncService
+ {
+ UserProfileServiceAppName = "User Profile Service Application"
+ Ensure = "Present"
+ FarmAccount = $FarmAccount
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPUserProfileServiceApp]UserProfileServiceApp"
+ }
+
+ #**********************************************************
+ # Service applications
+ #
+ # This section creates service applications and required
+ # dependencies
+ #**********************************************************
+
+ xSPServiceAppPool MainServiceAppPool
+ {
+ Name = "SharePoint Service Applications"
+ ServiceAccount = $ServicePoolManagedAccount.UserName
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPUserProfileServiceApp UserProfileServiceApp
+ {
+ Name = "User Profile Service Application"
+ ApplicationPool = "SharePoint Service Applications"
+ MySiteHostLocation = "http://$MySiteHostUrl"
+ ProfileDBName = "SP_UserProfiles"
+ ProfileDBServer = $DatabaseServer
+ SocialDBName = "SP_Social"
+ SocialDBServer = $DatabaseServer
+ SyncDBName = "SP_ProfileSync"
+ SyncDBServer = $DatabaseServer
+ FarmAccount = $FarmAccount
+ InstallAccount = $InstallAccount
+ DependsOn = @('[xSPServiceAppPool]MainServiceAppPool', '[xSPManagedPath]PersonalManagedPath', '[xSPSite]MySiteHost', '[xSPManagedMetaDataServiceApp]ManagedMetadataServiceApp', '[xSPSearchServiceApp]SearchServiceApp')
+ }
+ xSPSecureStoreServiceApp SecureStoreServiceApp
+ {
+ Name = "Secure Store Service Application"
+ ApplicationPool = "SharePoint Service Applications"
+ AuditingEnabled = $true
+ AuditlogMaxSize = 30
+ DatabaseName = "SP_SecureStore"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPServiceAppPool]MainServiceAppPool"
+ }
+ xSPManagedMetaDataServiceApp ManagedMetadataServiceApp
+ {
+ Name = "Managed Metadata Service Application"
+ InstallAccount = $InstallAccount
+ ApplicationPool = "SharePoint Service Applications"
+ DatabaseServer = $DatabaseServer
+ DatabaseName = "SP_ManagedMetadata"
+ DependsOn = "[xSPServiceAppPool]MainServiceAppPool"
+ }
+ xSPSearchServiceApp SearchServiceApp
+ {
+ Name = "Search Service Application"
+ DatabaseName = "SP_Search"
+ ApplicationPool = "SharePoint Service Applications"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPServiceAppPool]MainServiceAppPool"
+ }
+ xSPBCSServiceApp BCSServiceApp
+ {
+ Name = "BCS Service Application"
+ ApplicationPool = "SharePoint Service Applications"
+ DatabaseName = "SP_BCS"
+ DatabaseServer = $DatabaseServer
+ InstallAccount = $InstallAccount
+ DependsOn = @('[xSPServiceAppPool]MainServiceAppPool', '[xSPSecureStoreServiceApp]SecureStoreServiceApp')
+ }
+
+ #**********************************************************
+ # Site Collections
+ #
+ # This section contains the site collections to provision
+ #**********************************************************
+
+ xSPSite TeamSite
+ {
+ Url = "http://$TeamSiteUrl"
+ OwnerAlias = $InstallAccount.UserName
+ HostHeaderWebApplication = "http://$WebAppUrl"
+ Name = "Team Sites"
+ Template = "STS#0"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPWebApplication]HostNameSiteCollectionWebApp"
+ }
+ xSPSite MySiteHost
+ {
+ Url = "http://$MySiteHostUrl"
+ OwnerAlias = $InstallAccount.UserName
+ HostHeaderWebApplication = "http://$WebAppUrl"
+ Name = "My Site Host"
+ Template = "SPSMSITEHOST#0"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPWebApplication]HostNameSiteCollectionWebApp"
+ }
+
+ #**********************************************************
+ # Local configuration manager settings
+ #
+ # This section contains settings for the LCM of the host
+ # that this configuraiton is applied to
+ #**********************************************************
+ LocalConfigurationManager
+ {
+ RebootNodeIfNeeded = $true
+ }
+ }
+}
\ No newline at end of file
diff --git a/Modules/xSharePoint/Examples/Small Farm/AppServer.ps1 b/Modules/xSharePoint/Examples/Small Farm/AppServer.ps1
new file mode 100644
index 000000000..47ceaf129
--- /dev/null
+++ b/Modules/xSharePoint/Examples/Small Farm/AppServer.ps1
@@ -0,0 +1,170 @@
+Configuration SharePointAppServer
+{
+ param (
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $CredSSPDelegates,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $SPBinaryPath,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $ULSViewerPath,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $SPBinaryPathCredential,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $FarmAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $InstallAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $ProductKey,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $DatabaseServer,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $FarmPassPhrase,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $WebPoolManagedAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $ServicePoolManagedAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $WebAppUrl,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $MySiteHostUrl,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $TeamSiteUrl,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [int] $CacheSizeInMB
+ )
+ Import-DscResource -ModuleName xSharePoint
+ Import-DscResource -ModuleName xWebAdministration
+ Import-DscResource -ModuleName xCredSSP
+ Import-DscResource -ModuleName xDisk
+
+ node "localhost"
+ {
+ #**********************************************************
+ # Server configuration
+ #
+ # This section of the configuration includes details of the
+ # server level configuration, such as disks, registry
+ # settings etc.
+ #**********************************************************
+
+ xDisk LogsDisk { DiskNumber = 2; DriveLetter = "l" }
+ xDisk IndexDisk { DiskNumber = 3; DriveLetter = "i" }
+ xCredSSP CredSSPServer { Ensure = "Present"; Role = "Server" }
+ xCredSSP CredSSPClient { Ensure = "Present"; Role = "Client"; DelegateComputers = $CredSSPDelegates }
+
+
+ #**********************************************************
+ # Software downloads
+ #
+ # This section details where any binary downloads should
+ # be downloaded from and put locally on the server before
+ # installation takes place
+ #**********************************************************
+
+ File SPBinaryDownload
+ {
+ DestinationPath = "C:\SPInstall"
+ Credential = $SPBinaryPathCredential
+ Ensure = "Present"
+ SourcePath = $SPBinaryPath
+ Type = "Directory"
+ Recurse = $true
+ }
+ File UlsViewerDownload
+ {
+ DestinationPath = "L:\UlsViewer.exe"
+ Credential = $SPBinaryPathCredential
+ Ensure = "Present"
+ SourcePath = $ULSViewerPath
+ Type = "File"
+ DependsOn = "[xDisk]LogsDisk"
+ }
+
+ #**********************************************************
+ # Binary installation
+ #
+ # This section triggers installation of both SharePoint
+ # as well as the prerequisites required
+ #**********************************************************
+
+ xSPClearRemoteSessions ClearRemotePowerShellSessions
+ {
+ ClearRemoteSessions = $true
+ }
+ xSPInstallPrereqs InstallPrerequisites
+ {
+ InstallerPath = "C:\SPInstall\Prerequisiteinstaller.exe"
+ OnlineMode = $true
+ SQLNCli = "C:\SPInstall\prerequisiteinstallerfiles\sqlncli.msi"
+ PowerShell = "C:\SPInstall\prerequisiteinstallerfiles\Windows6.1-KB2506143-x64.msu"
+ NETFX = "C:\SPInstall\prerequisiteinstallerfiles\dotNetFx45_Full_setup.exe"
+ IDFX = "C:\SPInstall\prerequisiteinstallerfiles\Windows6.1-KB974405-x64.msu"
+ Sync = "C:\SPInstall\prerequisiteinstallerfiles\Synchronization.msi"
+ AppFabric = "C:\SPInstall\prerequisiteinstallerfiles\WindowsServerAppFabricSetup_x64.exe"
+ IDFX11 = "C:\SPInstall\prerequisiteinstallerfiles\MicrosoftIdentityExtensions-64.msi"
+ MSIPCClient = "C:\SPInstall\prerequisiteinstallerfiles\setup_msipc_x64.msi"
+ WCFDataServices = "C:\SPInstall\prerequisiteinstallerfiles\WcfDataServices.exe"
+ KB2671763 = "C:\SPInstall\prerequisiteinstallerfiles\AppFabric1.1-RTM-KB2671763-x64-ENU.exe"
+ WCFDataServices56 = "C:\SPInstall\prerequisiteinstallerfiles\WcfDataServices56.exe"
+ DependsOn = "[xSPClearRemoteSessions]ClearRemotePowerShellSessions"
+ }
+ xSPInstall InstallBinaries
+ {
+ BinaryDir = "C:\SPInstall"
+ ProductKey = $ProductKey
+ DependsOn = "[xSPInstallPrereqs]InstallPrerequisites"
+ }
+
+ #**********************************************************
+ # IIS clean up
+ #
+ # This section removes all default sites and application
+ # pools from IIS as they are not required
+ #**********************************************************
+
+ xWebAppPool RemoveDotNet2Pool { Name = ".NET v2.0"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebAppPool RemoveDotNet2ClassicPool { Name = ".NET v2.0 Classic"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebAppPool RemoveDotNet45Pool { Name = ".NET v4.5"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites"; }
+ xWebAppPool RemoveDotNet45ClassicPool { Name = ".NET v4.5 Classic"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites"; }
+ xWebAppPool RemoveClassicDotNetPool { Name = "Classic .NET AppPool"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebAppPool RemoveDefaultAppPool { Name = "DefaultAppPool"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebSite RemoveDefaultWebSite { Name = "Default Web Site"; Ensure = "Absent"; PhysicalPath = "C:\inetpub\wwwroot"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+
+
+ #**********************************************************
+ # Basic farm configuration
+ #
+ # This section creates the new SharePoint farm object, and
+ # provisions generic services and components used by the
+ # whole farm
+ #**********************************************************
+
+ xSPJoinFarm JoinSPFarm
+ {
+ DatabaseServer = $DatabaseServer
+ FarmConfigDatabaseName = "SP_Config"
+ Passphrase = $FarmPassPhrase
+ FarmAccount = $FarmAccount
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPInstall]InstallBinaries"
+ }
+
+ #**********************************************************
+ # Service instances
+ #
+ # This section describes which services should be running
+ # and not running on the server
+ #**********************************************************
+
+ xSPServiceInstance ClaimsToWindowsTokenServiceInstance
+ {
+ Name = "Claims to Windows Token Service"
+ Ensure = "Present"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPJoinFarm]JoinSPFarm"
+ }
+ xSPServiceInstance UserProfileServiceInstance
+ {
+ Name = "User Profile Service"
+ Ensure = "Present"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPJoinFarm]JoinSPFarm"
+ }
+
+ #**********************************************************
+ # Local configuration manager settings
+ #
+ # This section contains settings for the LCM of the host
+ # that this configuraiton is applied to
+ #**********************************************************
+ LocalConfigurationManager
+ {
+ RebootNodeIfNeeded = $true
+ }
+ }
+}
\ No newline at end of file
diff --git a/Modules/xSharePoint/Examples/Small Farm/FirstServer.ps1 b/Modules/xSharePoint/Examples/Small Farm/FirstServer.ps1
new file mode 100644
index 000000000..ab8640120
--- /dev/null
+++ b/Modules/xSharePoint/Examples/Small Farm/FirstServer.ps1
@@ -0,0 +1,377 @@
+Configuration SharePointFarmServer
+{
+ param (
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $CredSSPDelegates,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $SPBinaryPath,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $ULSViewerPath,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $SPBinaryPathCredential,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $FarmAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $InstallAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $ProductKey,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $DatabaseServer,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $FarmPassPhrase,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $WebPoolManagedAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $ServicePoolManagedAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $WebAppUrl,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $MySiteHostUrl,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $TeamSiteUrl,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [int] $CacheSizeInMB
+ )
+ Import-DscResource -ModuleName xSharePoint
+ Import-DscResource -ModuleName xWebAdministration
+ Import-DscResource -ModuleName xCredSSP
+ Import-DscResource -ModuleName xDisk
+
+ node "localhost"
+ {
+ #**********************************************************
+ # Server configuration
+ #
+ # This section of the configuration includes details of the
+ # server level configuration, such as disks, registry
+ # settings etc.
+ #**********************************************************
+
+ xDisk LogsDisk { DiskNumber = 2; DriveLetter = "l" }
+ xDisk IndexDisk { DiskNumber = 3; DriveLetter = "i" }
+ xCredSSP CredSSPServer { Ensure = "Present"; Role = "Server" }
+ xCredSSP CredSSPClient { Ensure = "Present"; Role = "Client"; DelegateComputers = $CredSSPDelegates }
+
+
+ #**********************************************************
+ # Software downloads
+ #
+ # This section details where any binary downloads should
+ # be downloaded from and put locally on the server before
+ # installation takes place
+ #**********************************************************
+
+ File SPBinaryDownload
+ {
+ DestinationPath = "C:\SPInstall"
+ Credential = $SPBinaryPathCredential
+ Ensure = "Present"
+ SourcePath = $SPBinaryPath
+ Type = "Directory"
+ Recurse = $true
+ }
+ File UlsViewerDownload
+ {
+ DestinationPath = "L:\UlsViewer.exe"
+ Credential = $SPBinaryPathCredential
+ Ensure = "Present"
+ SourcePath = $ULSViewerPath
+ Type = "File"
+ DependsOn = "[xDisk]LogsDisk"
+ }
+
+ #**********************************************************
+ # Binary installation
+ #
+ # This section triggers installation of both SharePoint
+ # as well as the prerequisites required
+ #**********************************************************
+
+ xSPClearRemoteSessions ClearRemotePowerShellSessions
+ {
+ ClearRemoteSessions = $true
+ }
+ xSPInstallPrereqs InstallPrerequisites
+ {
+ InstallerPath = "C:\SPInstall\Prerequisiteinstaller.exe"
+ OnlineMode = $true
+ SQLNCli = "C:\SPInstall\prerequisiteinstallerfiles\sqlncli.msi"
+ PowerShell = "C:\SPInstall\prerequisiteinstallerfiles\Windows6.1-KB2506143-x64.msu"
+ NETFX = "C:\SPInstall\prerequisiteinstallerfiles\dotNetFx45_Full_setup.exe"
+ IDFX = "C:\SPInstall\prerequisiteinstallerfiles\Windows6.1-KB974405-x64.msu"
+ Sync = "C:\SPInstall\prerequisiteinstallerfiles\Synchronization.msi"
+ AppFabric = "C:\SPInstall\prerequisiteinstallerfiles\WindowsServerAppFabricSetup_x64.exe"
+ IDFX11 = "C:\SPInstall\prerequisiteinstallerfiles\MicrosoftIdentityExtensions-64.msi"
+ MSIPCClient = "C:\SPInstall\prerequisiteinstallerfiles\setup_msipc_x64.msi"
+ WCFDataServices = "C:\SPInstall\prerequisiteinstallerfiles\WcfDataServices.exe"
+ KB2671763 = "C:\SPInstall\prerequisiteinstallerfiles\AppFabric1.1-RTM-KB2671763-x64-ENU.exe"
+ WCFDataServices56 = "C:\SPInstall\prerequisiteinstallerfiles\WcfDataServices56.exe"
+ DependsOn = "[xSPClearRemoteSessions]ClearRemotePowerShellSessions"
+ }
+ xSPInstall InstallBinaries
+ {
+ BinaryDir = "C:\SPInstall"
+ ProductKey = $ProductKey
+ DependsOn = "[xSPInstallPrereqs]InstallPrerequisites"
+ }
+
+ #**********************************************************
+ # IIS clean up
+ #
+ # This section removes all default sites and application
+ # pools from IIS as they are not required
+ #**********************************************************
+
+ xWebAppPool RemoveDotNet2Pool { Name = ".NET v2.0"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebAppPool RemoveDotNet2ClassicPool { Name = ".NET v2.0 Classic"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebAppPool RemoveDotNet45Pool { Name = ".NET v4.5"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites"; }
+ xWebAppPool RemoveDotNet45ClassicPool { Name = ".NET v4.5 Classic"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites"; }
+ xWebAppPool RemoveClassicDotNetPool { Name = "Classic .NET AppPool"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebAppPool RemoveDefaultAppPool { Name = "DefaultAppPool"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebSite RemoveDefaultWebSite { Name = "Default Web Site"; Ensure = "Absent"; PhysicalPath = "C:\inetpub\wwwroot"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+
+
+ #**********************************************************
+ # Basic farm configuration
+ #
+ # This section creates the new SharePoint farm object, and
+ # provisions generic services and components used by the
+ # whole farm
+ #**********************************************************
+
+ xSPCreateFarm CreateSPFarm
+ {
+ DatabaseServer = $DatabaseServer
+ FarmConfigDatabaseName = "SP_Config"
+ Passphrase = $FarmPassPhrase
+ FarmAccount = $FarmAccount
+ InstallAccount = $InstallAccount
+ AdminContentDatabaseName = "SP_AdminContent"
+ DependsOn = "[xSPInstall]InstallBinaries"
+ }
+ xSPManagedAccount ServicePoolManagedAccount
+ {
+ AccountName = $ServicePoolManagedAccount.UserName
+ Account = $ServicePoolManagedAccount
+ Schedule = ""
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPManagedAccount WebPoolManagedAccount
+ {
+ AccountName = $WebPoolManagedAccount.UserName
+ Account = $WebPoolManagedAccount
+ Schedule = ""
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPDiagnosticLoggingSettings ApplyDiagnosticLogSettings
+ {
+ InstallAccount = $InstallAccount
+ LogPath = "L:\ULSLogs"
+ LogSpaceInGB = 10
+ AppAnalyticsAutomaticUploadEnabled = $false
+ CustomerExperienceImprovementProgramEnabled = $true
+ DaysToKeepLogs = 7
+ DownloadErrorReportingUpdatesEnabled = $false
+ ErrorReportingAutomaticUploadEnabled = $false
+ ErrorReportingEnabled = $false
+ EventLogFloodProtectionEnabled = $true
+ EventLogFloodProtectionNotifyInterval = 5
+ EventLogFloodProtectionQuietPeriod = 2
+ EventLogFloodProtectionThreshold = 5
+ EventLogFloodProtectionTriggerPeriod = 2
+ LogCutInterval = 15
+ LogMaxDiskSpaceUsageEnabled = $true
+ ScriptErrorReportingDelay = 30
+ ScriptErrorReportingEnabled = $true
+ ScriptErrorReportingRequireAuth = $true
+ DependsOn = @("[xSPCreateFarm]CreateSPFarm", "[xDisk]LogsDisk")
+ }
+ xSPUsageApplication UsageApplication
+ {
+ Name = "Usage Service Application"
+ DatabaseName = "SP_Usage"
+ UsageLogCutTime = 5
+ UsageLogLocation = "L:\UsageLogs"
+ UsageLogMaxFileSizeKB = 1024
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPStateServiceApp StateServiceApp
+ {
+ Name = "State Service Application"
+ DatabaseName = "SP_State"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+
+ #**********************************************************
+ # Web applications
+ #
+ # This section creates the web applications in the
+ # SharePoint farm, as well as managed paths and other web
+ # application settings
+ #**********************************************************
+
+ xSPWebApplication HostNameSiteCollectionWebApp
+ {
+ Name = "SharePoint Sites"
+ ApplicationPool = "SharePoint Sites"
+ ApplicationPoolAccount = $WebPoolManagedAccount.UserName
+ AllowAnonymous = $false
+ AuthenticationMethod = "NTLM"
+ DatabaseName = "SP_Content_01"
+ DatabaseServer = $DatabaseServer
+ Url = $WebAppUrl
+ Port = 80
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPManagedAccount]WebPoolManagedAccount"
+ }
+ xSPManagedPath TeamsManagedPath
+ {
+ WebAppUrl = "http://$WebAppUrl"
+ InstallAccount = $InstallAccount
+ RelativeUrl = "teams"
+ Explicit = $false
+ HostHeader = $true
+ DependsOn = "[xSPWebApplication]HostNameSiteCollectionWebApp"
+ }
+ xSPManagedPath PersonalManagedPath
+ {
+ WebAppUrl = "http://$WebAppUrl"
+ InstallAccount = $InstallAccount
+ RelativeUrl = "personal"
+ Explicit = $false
+ HostHeader = $true
+ DependsOn = "[xSPWebApplication]HostNameSiteCollectionWebApp"
+ }
+ xSPCacheAccounts SetCacheAccounts
+ {
+ WebAppUrl = "http://$WebAppUrl"
+ SuperUserAlias = "DEMO\svxSPSuperUser"
+ SuperReaderAlias = "DEMO\svxSPReader"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPWebApplication]HostNameSiteCollectionWebApp"
+ }
+
+ #**********************************************************
+ # Service instances
+ #
+ # This section describes which services should be running
+ # and not running on the server
+ #**********************************************************
+
+ xSPServiceInstance ClaimsToWindowsTokenServiceInstance
+ {
+ Name = "Claims to Windows Token Service"
+ Ensure = "Present"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPServiceInstance UserProfileServiceInstance
+ {
+ Name = "User Profile Service"
+ Ensure = "Present"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPUserProfileSyncService UserProfileSyncService
+ {
+ UserProfileServiceAppName = "User Profile Service Application"
+ Ensure = "Present"
+ FarmAccount = $FarmAccount
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPUserProfileServiceApp]UserProfileServiceApp"
+ }
+
+ #**********************************************************
+ # Service applications
+ #
+ # This section creates service applications and required
+ # dependencies
+ #**********************************************************
+
+ xSPServiceAppPool MainServiceAppPool
+ {
+ Name = "SharePoint Service Applications"
+ ServiceAccount = $ServicePoolManagedAccount.UserName
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPCreateFarm]CreateSPFarm"
+ }
+ xSPUserProfileServiceApp UserProfileServiceApp
+ {
+ Name = "User Profile Service Application"
+ ApplicationPool = "SharePoint Service Applications"
+ MySiteHostLocation = "http://$MySiteHostUrl"
+ ProfileDBName = "SP_UserProfiles"
+ ProfileDBServer = $DatabaseServer
+ SocialDBName = "SP_Social"
+ SocialDBServer = $DatabaseServer
+ SyncDBName = "SP_ProfileSync"
+ SyncDBServer = $DatabaseServer
+ FarmAccount = $FarmAccount
+ InstallAccount = $InstallAccount
+ DependsOn = @('[xSPServiceAppPool]MainServiceAppPool', '[xSPManagedPath]PersonalManagedPath', '[xSPSite]MySiteHost', '[xSPManagedMetaDataServiceApp]ManagedMetadataServiceApp', '[xSPSearchServiceApp]SearchServiceApp')
+ }
+ xSPSecureStoreServiceApp SecureStoreServiceApp
+ {
+ Name = "Secure Store Service Application"
+ ApplicationPool = "SharePoint Service Applications"
+ AuditingEnabled = $true
+ AuditlogMaxSize = 30
+ DatabaseName = "SP_SecureStore"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPServiceAppPool]MainServiceAppPool"
+ }
+ xSPManagedMetaDataServiceApp ManagedMetadataServiceApp
+ {
+ Name = "Managed Metadata Service Application"
+ InstallAccount = $InstallAccount
+ ApplicationPool = "SharePoint Service Applications"
+ DatabaseServer = $DatabaseServer
+ DatabaseName = "SP_ManagedMetadata"
+ DependsOn = "[xSPServiceAppPool]MainServiceAppPool"
+ }
+ xSPSearchServiceApp SearchServiceApp
+ {
+ Name = "Search Service Application"
+ DatabaseName = "SP_Search"
+ ApplicationPool = "SharePoint Service Applications"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPServiceAppPool]MainServiceAppPool"
+ }
+ xSPBCSServiceApp BCSServiceApp
+ {
+ Name = "BCS Service Application"
+ ApplicationPool = "SharePoint Service Applications"
+ DatabaseName = "SP_BCS"
+ DatabaseServer = $DatabaseServer
+ InstallAccount = $InstallAccount
+ DependsOn = @('[xSPServiceAppPool]MainServiceAppPool', '[xSPSecureStoreServiceApp]SecureStoreServiceApp')
+ }
+
+ #**********************************************************
+ # Site Collections
+ #
+ # This section contains the site collections to provision
+ #**********************************************************
+
+ xSPSite TeamSite
+ {
+ Url = "http://$TeamSiteUrl"
+ OwnerAlias = $InstallAccount.UserName
+ HostHeaderWebApplication = "http://$WebAppUrl"
+ Name = "Team Sites"
+ Template = "STS#0"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPWebApplication]HostNameSiteCollectionWebApp"
+ }
+ xSPSite MySiteHost
+ {
+ Url = "http://$MySiteHostUrl"
+ OwnerAlias = $InstallAccount.UserName
+ HostHeaderWebApplication = "http://$WebAppUrl"
+ Name = "My Site Host"
+ Template = "SPSMSITEHOST#0"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPWebApplication]HostNameSiteCollectionWebApp"
+ }
+
+ #**********************************************************
+ # Local configuration manager settings
+ #
+ # This section contains settings for the LCM of the host
+ # that this configuraiton is applied to
+ #**********************************************************
+ LocalConfigurationManager
+ {
+ RebootNodeIfNeeded = $true
+ }
+ }
+}
\ No newline at end of file
diff --git a/Modules/xSharePoint/Examples/Small Farm/WFEServer.ps1 b/Modules/xSharePoint/Examples/Small Farm/WFEServer.ps1
new file mode 100644
index 000000000..7118e5b3c
--- /dev/null
+++ b/Modules/xSharePoint/Examples/Small Farm/WFEServer.ps1
@@ -0,0 +1,194 @@
+Configuration SharePointWFEServer
+{
+ param (
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $CredSSPDelegates,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $SPBinaryPath,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $ULSViewerPath,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $SPBinaryPathCredential,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $FarmAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $InstallAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $ProductKey,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $DatabaseServer,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $FarmPassPhrase,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $WebPoolManagedAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [PSCredential] $ServicePoolManagedAccount,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $WebAppUrl,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $MySiteHostUrl,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [string] $TeamSiteUrl,
+ [Parameter(Mandatory=$true)] [ValidateNotNullorEmpty()] [int] $CacheSizeInMB
+ )
+ Import-DscResource -ModuleName xSharePoint
+ Import-DscResource -ModuleName xWebAdministration
+ Import-DscResource -ModuleName xCredSSP
+ Import-DscResource -ModuleName xDisk
+
+ node "localhost"
+ {
+ #**********************************************************
+ # Server configuration
+ #
+ # This section of the configuration includes details of the
+ # server level configuration, such as disks, registry
+ # settings etc.
+ #**********************************************************
+
+ xDisk LogsDisk { DiskNumber = 2; DriveLetter = "l" }
+ xDisk IndexDisk { DiskNumber = 3; DriveLetter = "i" }
+ xCredSSP CredSSPServer { Ensure = "Present"; Role = "Server" }
+ xCredSSP CredSSPClient { Ensure = "Present"; Role = "Client"; DelegateComputers = $CredSSPDelegates }
+
+
+ #**********************************************************
+ # Software downloads
+ #
+ # This section details where any binary downloads should
+ # be downloaded from and put locally on the server before
+ # installation takes place
+ #**********************************************************
+
+ File SPBinaryDownload
+ {
+ DestinationPath = "C:\SPInstall"
+ Credential = $SPBinaryPathCredential
+ Ensure = "Present"
+ SourcePath = $SPBinaryPath
+ Type = "Directory"
+ Recurse = $true
+ }
+ File UlsViewerDownload
+ {
+ DestinationPath = "L:\UlsViewer.exe"
+ Credential = $SPBinaryPathCredential
+ Ensure = "Present"
+ SourcePath = $ULSViewerPath
+ Type = "File"
+ DependsOn = "[xDisk]LogsDisk"
+ }
+
+ #**********************************************************
+ # Binary installation
+ #
+ # This section triggers installation of both SharePoint
+ # as well as the prerequisites required
+ #**********************************************************
+
+ xSPClearRemoteSessions ClearRemotePowerShellSessions
+ {
+ ClearRemoteSessions = $true
+ }
+ xSPInstallPrereqs InstallPrerequisites
+ {
+ InstallerPath = "C:\SPInstall\Prerequisiteinstaller.exe"
+ OnlineMode = $true
+ SQLNCli = "C:\SPInstall\prerequisiteinstallerfiles\sqlncli.msi"
+ PowerShell = "C:\SPInstall\prerequisiteinstallerfiles\Windows6.1-KB2506143-x64.msu"
+ NETFX = "C:\SPInstall\prerequisiteinstallerfiles\dotNetFx45_Full_setup.exe"
+ IDFX = "C:\SPInstall\prerequisiteinstallerfiles\Windows6.1-KB974405-x64.msu"
+ Sync = "C:\SPInstall\prerequisiteinstallerfiles\Synchronization.msi"
+ AppFabric = "C:\SPInstall\prerequisiteinstallerfiles\WindowsServerAppFabricSetup_x64.exe"
+ IDFX11 = "C:\SPInstall\prerequisiteinstallerfiles\MicrosoftIdentityExtensions-64.msi"
+ MSIPCClient = "C:\SPInstall\prerequisiteinstallerfiles\setup_msipc_x64.msi"
+ WCFDataServices = "C:\SPInstall\prerequisiteinstallerfiles\WcfDataServices.exe"
+ KB2671763 = "C:\SPInstall\prerequisiteinstallerfiles\AppFabric1.1-RTM-KB2671763-x64-ENU.exe"
+ WCFDataServices56 = "C:\SPInstall\prerequisiteinstallerfiles\WcfDataServices56.exe"
+ DependsOn = "[xSPClearRemoteSessions]ClearRemotePowerShellSessions"
+ }
+ xSPInstall InstallBinaries
+ {
+ BinaryDir = "C:\SPInstall"
+ ProductKey = $ProductKey
+ DependsOn = "[xSPInstallPrereqs]InstallPrerequisites"
+ }
+
+ #**********************************************************
+ # IIS clean up
+ #
+ # This section removes all default sites and application
+ # pools from IIS as they are not required
+ #**********************************************************
+
+ xWebAppPool RemoveDotNet2Pool { Name = ".NET v2.0"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebAppPool RemoveDotNet2ClassicPool { Name = ".NET v2.0 Classic"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebAppPool RemoveDotNet45Pool { Name = ".NET v4.5"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites"; }
+ xWebAppPool RemoveDotNet45ClassicPool { Name = ".NET v4.5 Classic"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites"; }
+ xWebAppPool RemoveClassicDotNetPool { Name = "Classic .NET AppPool"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebAppPool RemoveDefaultAppPool { Name = "DefaultAppPool"; Ensure = "Absent"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+ xWebSite RemoveDefaultWebSite { Name = "Default Web Site"; Ensure = "Absent"; PhysicalPath = "C:\inetpub\wwwroot"; DependsOn = "[xSPInstallPrereqs]InstallPrerequisites" }
+
+
+ #**********************************************************
+ # Basic farm configuration
+ #
+ # This section creates the new SharePoint farm object, and
+ # provisions generic services and components used by the
+ # whole farm
+ #**********************************************************
+
+ xSPJoinFarm JoinSPFarm
+ {
+ DatabaseServer = $DatabaseServer
+ FarmConfigDatabaseName = "SP_Config"
+ Passphrase = $FarmPassPhrase
+ FarmAccount = $FarmAccount
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPInstall]InstallBinaries"
+ }
+ xSPDistributedCacheService EnableDistributedCache
+ {
+ Name = "AppFabricCachingService"
+ Ensure = "Present"
+ CacheSizeInMB = $CacheSizeInMB
+ ServiceAccount = $ServicePoolManagedAccount.UserName
+ InstallAccount = $InstallAccount
+ CreateFirewallRules = $true
+ DependsOn = "[xSPJoinFarm]JoinSPFarm"
+ }
+
+ #**********************************************************
+ # Service instances
+ #
+ # This section describes which services should be running
+ # and not running on the server
+ #**********************************************************
+
+ xSPServiceInstance ClaimsToWindowsTokenServiceInstance
+ {
+ Name = "Claims to Windows Token Service"
+ Ensure = "Present"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPJoinFarm]JoinSPFarm"
+ }
+ xSPServiceInstance SecureStoreServiceInstance
+ {
+ Name = "Secure Store Service"
+ Ensure = "Present"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPJoinFarm]JoinSPFarm"
+ }
+ xSPServiceInstance ManagedMetadataServiceInstance
+ {
+ Name = "Managed Metadata Web Service"
+ Ensure = "Present"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPJoinFarm]JoinSPFarm"
+ }
+ xSPServiceInstance BCSServiceInstance
+ {
+ Name = "Business Data Connectivity Service"
+ Ensure = "Present"
+ InstallAccount = $InstallAccount
+ DependsOn = "[xSPJoinFarm]JoinSPFarm"
+ }
+
+ #**********************************************************
+ # Local configuration manager settings
+ #
+ # This section contains settings for the LCM of the host
+ # that this configuraiton is applied to
+ #**********************************************************
+ LocalConfigurationManager
+ {
+ RebootNodeIfNeeded = $true
+ }
+ }
+}
\ No newline at end of file
diff --git a/Modules/xSharePoint/xSharePoint.pssproj b/Modules/xSharePoint/xSharePoint.pssproj
index ec2baab12..81780c488 100644
--- a/Modules/xSharePoint/xSharePoint.pssproj
+++ b/Modules/xSharePoint/xSharePoint.pssproj
@@ -73,8 +73,11 @@
+
+
+
@@ -127,6 +130,10 @@
+
+
+
+