SharePoint Server 2013 Installation & Planning Guide

Since the time I posted this SharePoint 2013 VM on my blog, I have received requests from a few SharePoint enthusiasts to also post detailed steps for installing SharePoint Server 2013. Since these steps are available on TechNet (see below for the link) and have been blogged about in a number of other places, I did not want to duplicate the effort here. What I did want to post here though is a step by step approach, architectural guidance, recommendations & resources that you will need to build a well-planned, scalable and error free SharePoint 2013 on premise production farm. The post will cover guidance around the following aspects of SharePoint Installation:

  1. Planning your SharePoint architecture
  2. Pre installation server prep
  3. Installing & configuring SharePoint
  4. Post installation maintenance & planning
  1. Plan your farm:
    1. Plan the physical and logical architecture: In addition to the above here are a few links that will help you plan the physical and logical architecture and topology for the farm: http://technet.microsoft.com/en-us/sharepoint/fp123594.aspx, http://www.microsoft.com/en-us/download/details.aspx?id=30377, http://technet.microsoft.com/en-us/library/cc263199.aspx, http://technet.microsoft.com/en-us/library/ff829836.aspx
    2. Review the hardware & software requirements: The following link describes the hardware & software requirements for SharePoint: http://technet.microsoft.com/en-us/library/cc262485.aspx. A quick note here is that to avoid seeing future SharePoint health analyzer issues related to disk space (http://technet.microsoft.com/en-us/library/ff805057(v=office.14).aspx), I will also recommend  starting with system drive that is higher than the recommended 80 GB (I typically start with a 100 GBS). I will also recommend placing the SharePoint logs, usage reports and search indexes to a drive other than the system drive
    3. Capacity plan your hardware: While the link above will get you started with the minimum recommended environment, it is always recommended to capacity plan your hardware in advance from a performance and scalability perspective. The following link describes advanced capacity and sizing recommendations for SharePoint Server 2013: http://technet.microsoft.com/en-us/library/ff758647.aspx
    4. Plan Service and admin accounts for your farm: SharePoint needs various accounts to be configured with different sets of permissions. The following article is a good reference for the different accounts that need to be set up and configured for SharePoint: http://technet.microsoft.com/en-us/library/cc263445.aspx
    5. More in-Depth planning for SharePoint 2013: Finally, for advanced readers or for those who’d like to setup sophisticated  farms, the following is a very comprehensive guide for an in-depth planning of different aspects of SharePoint Server 2013: http://technet.microsoft.com/en-us/library/cc261834.aspx
  2. Prepare your servers for SharePoint installation:
    1. OS:
      1. Before you install any software on either the SharePoint or SQL servers, ensure that you have activated the OS licenses on these servers (although this is not a required step at this point)
      2. Also ensure that you have applied the latest patches for the OS on all the servers
    2. SQL Server(s): SharePoint is a very database intensive product. For optimal performance and throughput, it is highly recommended that the SQL Server be optimally set up by following these practices:
      1. Apply the latest patches and updates (this should be done before even you begin installing SharePoint)
      2. Follow the guidelines on this link to ensure that you have carried out the necessary planning and configuration on the SQL server front as well: http://technet.microsoft.com/en-us/library/hh292622.aspx. Besides other considerations, I’d like to specifically point you to the sections titled “Configure specific SQL Server settings before you deploy SharePoint Server 2013”, “Design storage for optimal throughput and manageability” & “Proactively manage the growth of data and log files” from this article for optimal performance of the SQL server
      3. Plan your SQL Server capacity and configuration: The following link provides in depth details about planning Your SQL server for the various SharePoint databases: http://technet.microsoft.com/en-us/library/cc298801.aspx
  3. SharePoint installation and configuration:
    1. Installation guides for manual installation: The following links provide detailed installation & configuration steps for SharePoint 2013 installation: http://technet.microsoft.com/en-us/library/cc262957.aspx & http://www.microsoft.com/en-us/download/details.aspx?id=30384. This includes installing the pre-requisites for SharePoint Server 2013.
    2. Scripted Installations: For those who prefer a scripted approach or would like to build multiple environments, you can refer to tools such as the AutoSPInstaller & AutoSPSourceBuilder to script your SharePoint 2013 installation. Matthey J. Bailey in a very useful blog post here also provides links to other guides and tools to build your scripted/ non-scripted SharePoint environments (Search for the section titled “Detailed Instructions on How to Install a SharePoint 2013 Development Environment”)
    3. Cumulative Updates: After SharePoint is installed, I will recommend installing the latest updates and CUs from this link: http://technet.microsoft.com/en-us/sharepoint/jj891062.aspx after you install SharePoint and before you run the SharePoint products configuration wizard.
    4. Possible installation issues & troubleshooting: The following articles describe a few possible issues while installing SharePoint & their resolution (I’ll keep updating these as and when I find more links and based on any inputs): http://blogs.msdn.com/b/fabdulwahab/archive/2013/08/29/sharepoint-2013-installation-and-configuration-issues.aspx & http://gauravmahajan.net/2013/01/31/sharepoint-2013-installation-error-iisext-vbs/
  4. Monitoring & post installation maintenance:
    1. Plan for monitoring SharePoint: The following article provides good details on SharePoint monitoring tools, scenarios and schedules: http://technet.microsoft.com/en-us/library/jj219701.aspx
    2. The following article discusses configuring monitoring and performance counters for SharePoint 2013: http://technet.microsoft.com/en-us/library/ff758658.aspx
    3. SQL Server maintenance: The following article describes maintenance that needs to be carried out for a SQL server serving SharePoint databases: http://technet.microsoft.com/en-us/library/cc262731.aspx The article refers to SharePoint 2010 but a lot of it is still true for SharePoint 2013

Hope this blog will serve as a comprehensive resource that you can refer to for planning, installing and maintaining your SharePoint 2013 farm. Good luck with your installation!

Posted in Uncategorized | Leave a comment

SharePoint 2013 Edition and Feature Comparison

Microsoft provides SharePoint Deployment Planning Services (SDPS) that allow its customers to use their Software Assurance Benefits to cover the costs of engaging with qualified providers for SharePoint deployment and upgrade planning services. You can read more about SDPS here.

As someone who delivers these SDPS engagements, more often than not I have had the need to take the customers through the SharePoint features available as part of various on premise and online plans. While a comprehensive listing of these features is available on TechNet here, it is hard to filter this listing by the edition or plan type thus making it difficult to help them understand the features missing or available between different editions. Without duplicating much effort, I have created a quick excel file and uploaded it here for your convenience if you too would like to view a filterable feature comparison within the different editions and online plans of SharePoint 2013.

Hope you find it useful

Posted in SharePoint, SharePoint 2013, SharePoint 2013, Tools | Tagged , , , , , , , | 2 Comments

Build SSRS 2008 R2 and SSRS 2012 reports using Visual Studio 2012

The Microsoft SQL Server product team finally released the long awaited SQL Server Data tools – BI templates for Visual Studio 2012. This release installs the SQL Server Business Intelligence projects for Analysis Services, Integration Services, and Reporting Services. Among other things, the release also enables you to create and edit SQL Server 2008 R2 or SQL Server 2012 SSRS reports. You can download and install the tools from here: http://www.microsoft.com/en-us/download/details.aspx?id=36843

Installing the tools however had the adverse effect of causing the data projects in our Visual Studio solutions to fail from working. Here’s what you will need to do to resolve the issue if your database projects are failing to load as well:

  1. Download and install the SSDT December 2012 Update from here: http://go.microsoft.com/fwlink/?LinkID=274984
  2. Download and install the Data-Tier Application framework from here: http://www.microsoft.com/en-us/download/details.aspx?id=36842.
    If you are on an x64 machine, make sure you install the x86 updates (first) as
    well the x64 updates listed in this URL.

Your database projects should work fine after installing the above updates. One last thing worth mentioning is that I currently am on Visual Studio 2012 Update 1 and also that the December 2012 update is the latest one available at this time.

Posted in SQL Server, Visual Studio 2012 | Tagged , , , | 2 Comments

Install the Windows Phone 8.0 Emulator without installing Visual Studio 2012 (or how to test local SharePoint sites on a Windows Phone 8.0 device)

I recently wrote this post on launching the Windows Phone 8.0 emulator without launching Visual Studio 2012. One of the reasons to be able to use the emulator without the need for Visual Studio could be when you only want to view/ demo your sites or applications on the emulator without having the need to develop and deploy them using Visual Studio. In my case, for example, I wanted to do demo the BI capabilities of SharePoint on a mobile device. You may want to use the emulator to just test on a Windows Phone 8.0 device your SharePoint sites hosted on a virtual machine. So here’s how you can do it:

  1. Configure the Hyper-V feature: The Windows Phone 8.0 emulator is essentially a virtual hard drive (VHD) that is launched using Hyper-V. Ensure that you have the Hyper-V feature installed on your Windows 8 machine. You can do this by browsing to Add  or remove programs –> Turn Windows features on or off –> Selecting Hyper-V from the pop-up screen:
    Hyper-V Feature
  2. Download the installer: Next, we’ll need to do is to download the Windows Phone 8.0 SDK from here: http://www.microsoft.com/en-us/download/details.aspx?id=35471 Clicking on the Download button next to “WPexpress_full.exe” file will cause your browser to prompt you to Run or Save the file. Since we are doing a custom installation, we will want to save the executable to a local drive.
  3. Open it using the command prompt: Once you have download the file, you will need to open the file location in the command prompt. You can do this by either:
    1. Opening the command prompt and changing the directory to the download directory OR
    2. Shift-Right clicking the download folder and selecting the “Open with command prompt” option:
      OpenInCmd
  4. Download all the installation files: Next, we are going to download  the installation files onto the local hard drive. This will allow us to only install the components necessary for the emulator to run. To do this, type “WPexpress_full.exe /layout <DOWNLOADLOCATION>” in the command prompt. The <DOWNLOADLOCATION> in the above command is the location where you would like to download the installation files to. This will launch the Visual Studio 2012 installation Wizard in the download mode. Make sure you have about 1.5 GB free in the drive where you intend to download the installation files:
    Installer
  5. You should see the following folder structure once the files have downloaded – <DOWNLOADLOCATION>\packages\MobileTools:
    MobileTools
  6. We are now ready to run the installation media for the emulator. Browse to the <DOWNLOADLOCATION>\packages\MobileTools\XdeHost folder within the downloaded files and run the MobileTools_XDEHost.msi file. This will install the XDE.exe tool that will launch the emulator. Once the setup is complete, you can verify that the relevant files have been created by browsing to the following path: “C:\Program Files (x86)\Microsoft XDE\8.0″ (assuming that you have installed the files in the C: drive)
  7. Next, we need to install the virtual hard  drive for the Windows Phone 8.0 that the emulator will launch. To do so, browse to the “<DOWNLOADLOCATION>\packages\MobileTools\WpFolder” folder and run the “MobileTools_WPImages_enu.msi” Windows Installer package. This will install various VHD files for the Windows Phone. Once the setup is complete, you can verify that the relevant files have been created by browsing to the following path: “C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Emulation\Images” (assuming that you have installed the files in the C: drive).

That’s it. You are now ready to launch the Windows Phone 8.0 emulator without having to run or even install Visual Studio 2012. To view instructions on how to launch the emulator, please refer my earlier bog post at: http://gauravmahajan.net/2013/02/06/launch-windows-phone-8-emulator-without-launching-visual-studio-2012/

Posted in How To, SharePoint, Visual Studio 2012, Windows Phone 8, Windows Phone SDK | Tagged , , , , | 2 Comments

Launch Windows Phone 8 Emulator without launching Visual Studio 2012

One of a recent pre-sales engagements that I was working on required me to demo the BI capabilities of SharePoint 2010 on a Windows 8 phone device. Considering that it needed to be projected for the benefit of the audience and the fact that the demo SharePoint environment was not exposed to the internet and therefore could not be accessed from a mobile device, I decided to perform the demo using a Windows Phone 8.0 Emulator.

The Windows Phone 8.0 emulator is essentially a virtual hard drive (VHD) that is launched using Hyper-V (cool :)). So here’s what you need to do to be able to launch the Windows Phone 8 emulator without having to launching Visual Studio:

  1. Ensure that you have downloaded and installed the latest version of Windows Phone 8.0 SDK from here (at the time of writing the blog): http://www.microsoft.com/en-us/download/details.aspx?id=35471
  2. Ensure that you have the Hyper-V feature installed on your Windows 8 machine. You can do this by browsing to Add  or remove programs –> Turn Windows features on or off –> Selecting Hyper-V from the pop-up screen:
    Hyper-V Feature
  3. Open the command prompt in elevated mode and change the current directory in the command prompt to: “C:\Program Files (x86)\Microsoft XDE\8.0″ (assuming you have installed the SDK to the C:\ drive). Alternately, you can browse to this folder in Windows Explorer, press the “Shift” key, right click the folder and then select “Open command window here” to directly open the folder in command prompt:
    Cmd
  4. If you are launching the emulator for the first time, you will need to provide the path to the virtual hard drive to be used by it. The Windows Phone SDK installer installs the windows phone 8.0 VHDs in the “C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Emulation\Images”  folder(again, assuming you have installed the SDK to the C:\ drive). We are going to launch the “Flash.vhd” hard drive from this folder. To do so, we will run the following command from the command prompt opened in the above step:
    xde -vhd “C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Emulation\Images\Flash.vhd”:
    XDE
  5. When the emulator launches for the first time, it tries to configure the Hyper-V network settings (adds and configures new network adapters to your machine so the phone is connected to your network and consequently the internet). If you did not launch the command prompt in step 3 above in elevated mode, you will receive the prompt shown in the image below. This is absolutely normal. If this happens, click the “Retry” button and XDE.exe will automatically launch with elevated privileges. Remember that the emulator only needs to run in elevated mode the first time. So if you shut down the phone and start it again, you will not need to launch it in elevated mode:
    XDE Hyper-V error
  6. This will now launch the windows phone 8 emulator for you:
    Windows Phone 8.0 Emulator
  7. After the first time of launching it, XDE will remember the path to the vhd file. So if you shut down the phone and would like to launch it again, you will only need to double click the XDE.exe file to launch it again. I’d recommend creating a shortcut for it on the desktop or another convenient location.

The following link provides some nice troubleshooting tips in case you face issues running the emulator: http://social.msdn.microsoft.com/Forums/en-US/wptools/thread/b06cc9f2-aa5e-4cb3-9df1-0c273e1dfd68

I will also shortly blog about installing the Windows Phone 8.0 emulator without having to install Visual Studio 2012. Hope you have fun with you new phone:)

Posted in How To, Visual Studio 2012, Windows Phone 8 | Tagged , , , , | 25 Comments

SharePoint 2013 Installation – IISExt.vbs

The pre-requisites installation in one of my recent SharePoint 2013 farm installations was failing at the step where it configures the Application Server and Web Server role for the Server:
InstallationError

Further, the error logs had the following entry:
——————————————————————————————————-
- Request for install time of Application Server Role, Web Server (IIS) Role
- Install process returned (0)
- [In HRESULT format] (0)
- “C:\Windows\system32\cscript.exe” “C:\Windows\system32\iisext.vbs” /enext “ASP.NET v4.0.30319″

- Request for install time of Application Server Role, Web Server (IIS) Role – Install process returned (1)
- [In HRESULT format] (-2147024895)
- Error when enabling ASP.NET v4.0.30319 – Last return code (1)
——————————————————————————————————

Since I did not find much community guidance around this, I thought I’ll do some research myself and post the solution for other’s benefit as well.

A little bit of digging around revealed that the IISExt.vbs script file was indeed missing from the C:\Windows\System32 folder. Further research revealed that the script is part of the IIS 6.0 scripting tools. The solution therefore is as simple as enabling the IIS 6.0 Scripting Tools through the Server Roles and Features Wizard. The path to the IIS 6.0 Scripting Tools is shown in the following screen capture:
IIS6ScriptingTools

That’s it. Your pre-requisites installation should proceed as intended after you install these tools… Good Luck with your install!

Posted in SharePoint, SharePoint 2013 | Tagged , | 19 Comments

Configure Apps for SharePoint 2013

Microsoft has published a very comprehensive set of guidelines for installing, configuring and managing Apps for SharePoint 2013. These guidelines are available on the TechNet site here: http://technet.microsoft.com/en-us/library/fp161232.aspx. Without duplicating those details however, I wanted to capture the few necessary steps for those who wanted to quickly get apps for SharePoint 2013 going on a dev. farm. Please note that the examples assume you are using the VM downloaded from my earlier blog post:

  1. Configure DNS entries: First a little background on why we need to do this - Each installation of an app has a unique URL in your environment. You determine the template for that URL (by determining a domain name and an app prefix), and then app URLs are automatically generated based on that template. Paths for the apps are based on the URL for the site where they are installed. When you install an app to a site, a SubWeb of that site is created to host the app content. The SubWeb for the app is hierarchically below the site collection, but has an isolated unique host header instead of being under the site’s URL. It is recommended to configure a separate DNS for your apps. The difference in domain names provides a layer of isolation for the apps. The use of a different domain name from the SharePoint sites prevents cross-site scripting between the apps and sites and unauthorized access to users’ data. Once you have configured the DNS, you will want to create a wildcard DNS so any app URLs that SharePoint creates can be serviced. The screen shot below shows a “*.apps” wildcard CNAME record:
    DNS
  2. Enable Services on the server: Browse to “Central Administration –> System Settings –> Manage Services on server” and ensure that the “App Management Service” and “Microsoft SharePoint Foundation Subscription Settings Service” services are started:
    Services
  3. Configure the Subscription Settings service application and proxy:  You can do so by running the following commands in the SharePoint 2013 Management Shell (PowerShell) – examples below assume you are using the VM downloaded through my blog post:
    1. $account = Get-SPManagedAccount “<farm account>”
      • Where: <farm account> is the name of the Farm administrators account in the SharePoint farm
      • Example: $account = Get-SPManagedAccount “sp_farm”
    2. $appPoolSubSvc = New-SPServiceApplicationPool -Name SettingsServiceAppPool -Account $account
    3. $appSubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $appPoolSubSvc –Name SettingsServiceApp –DatabaseName <SettingsServiceDB>
      • Where: <SettingsServiceDB> is the name that you’d like to give to the new Subscription Settings Service database that the above command will create
      • Example: $appSubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $appPoolSubSvc –Name SettingsServiceApp –DatabaseName App_SubscriptionSettingsService
    4. $proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy –ServiceApplication $appSubSvc
  4. Configure the App Management service application and proxy:  You can do so by running the following commands in  SharePoint 2013 Management Shell (PowerShell) - again, examples below assume you are using the VM downloaded through my blog post:
    1. $account = Get-SPManagedAccount “<farm account>”
      • Where: <farm account> is the name of the Farm administrators account in the SharePoint farm
      • Example: $account = Get-SPManagedAccount “sp_farm”
    2. $appPoolAppSvc = New-SPServiceApplicationPool -Name AppServiceAppPool -Account $account
    3. $appAppSvc = New-SPAppManagementServiceApplication -ApplicationPool $appPoolAppSvc -Name AppServiceApp -DatabaseName <AppServiceDB>
      • Where: <AppServiceDB> is the name that you’d like to give to the new App Management Service database that the above command will create
      • Example: $appSubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $appPoolSubSvc –Name SettingsServiceApp –DatabaseName App_AppManagmentService
    4. $proxyAppSvc = New-SPAppManagementServiceApplicationProxy -ServiceApplication $appAppSvc
  5. Configure the app URLs in Central Admin: Browse to “Central Administration –> Apps –> Configure App URLs” and enter the wildcard CNAME entry that you created above (in step 1) along with an app prefix as depicted below:
    APP URLs

That’s all you would need to do to get started. Now, a few issues that I faced in my environment (and how to overcome them):

  1. Access denied error when trying to configure the Subscription Settings service application: You are most likely going to face this issue if you are using the VM created by me. The underlying cause for this issue is that for some reason, the SQL server installation did not configure permissions correctly on the “Data” directory. This results in a failure when PowerShell tries to create the database for the service application. To overcome the issue you will manually need to grant the “SQLServerMSASUser$SP2013$MSSQLSERVER” Read and Write access to the data directory:
    DataDirectoryPermissions
  2. 401.1 error: The second issue that I faced was the http 401.1 error that I received after adding an app from the SharePoint App Store and browsing to this newly added app. There are 2 workarounds for this issue that Microsoft describes in this KB article. I am going to duplicate the recommended approach described in this KB:
    1. Open the registry editor (regedit.exe)
    2. Browse to the following path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
    3. Add a new Multi-String Value and call it: BackConnectionHostNames
    4. Edit the value and enter *.gauravmahajan.net and gauravmahajan.net in two different lines:
      BackConnection
    5. Close the registry editor and restart the machine
    6. Browse to your app again and it should now open just fine after you provide the required credentials.
    7. In case the above does not work, you may want to go for the second workaround described in the KB (but only in non-production environments)

Hope the above helps you in getting a quick start on using Apps for SharePoint 2013!

Posted in How To, SharePoint, SharePoint 2013 | Tagged , | 10 Comments