Unattended Configuration for SharePoint Server 201614 Mar 2016 | SharePoint 2016
SharePoint Server 2016 has some… interesting things baked into it including a few things that appear to come from SharePoint Online. A new unattended configuration for SharePoint Server 2016 is also present, using an answer file. While unadvertised, it is easy to use, but a bit harder to discover as the configuration options are buried throughout the SharePoint code base.
So, how does it work? Pretty simple. Create a file called
unattend.txt. Add some entries like this:
DiagnosticsULSLocation=E:\ULS DiagnosticsLogCutInterval=1 DiagnosticsEventLogFloodProtectionEnabled=true DiagnosticsLogMaxDiskSpaceUsageEnabled=13 DiagnosticsLogDiskSpaceUsageGB=3
Save it to
C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\CONFIG\ and build your farm through PowerShell or the Config Wizard. The answer file will be picked up and the values applied appropriately.
Post-farm build, you can see the key/value pairs located in the SPFarm object, which we can see via PowerShell.
$farm = Get-SPFarm $farm.InitializationSettings Key Value --- ----- DiagnosticsULSLocation E:\ULS DiagnosticsLogCutInterval 1 DiagnosticsEventLogFloodProtectionEn... true DiagnosticsLogMaxDiskSpaceUsageEnabled 13 DiagnosticsLogDiskSpaceUsageGB 3 BrowserCEIPEnabled true ErrorReportingEnabled true DownloadErrorReportingUpdates true ClientPerformanceMeasurementEnabled true AppAnalyticsAutomaticUploadEnabled true
There are a lot of these. Some of the keys may or may not work. This isn’t a complete list of what I’ve found so far, and I’m compiling a spreadsheet of settings, but just examples of what is currently available.
Property Type -------- ------ GridZoneSMTPEnableSsl string GridZoneSMTPOverrideEnvelopeSender string GridZoneSMTPPort int GridZoneSMTPServer string RecycleBinRetentionPeriod int SecondStageRecycleBinQuota int TenantXP_OutgoingEmailAddress string TenantXP_ReplyToEmailAddress string UseNewsFeedEnabledSetting bool
There are others, as well, such as automatically creating a Secure Store Service, etc.
Pretty neat, and hopefully this is functionality that persists into the future, as it is great for pre-configured, automated environments, versus the heavy amount of post-configuration we must use with farms today!