Scenario
- You want a SharePoint Server 2013 virtual machine for local development work.
- This may be shared throughout the development team
- This can be hosted on a shared workstation or server via Remote Desktop or on your personal workstation or laptop
- Snapshots of the VM can be taken at any time
- Make sure you have the appropriate licenses for each instance of the VM
- MS has some good options for VM licensing and development licenses with an MSDN subscription
- SharePoint Server 2013 Standard or Enterprise (on-premises standalone virtual machine)
- You want to use non-expiring app licenses
- You want the VM to have its own domain and email capabilities
- You want to address the problems of a SharePoint 2013 install on an AD Domain Controller
- Including MySites, Azure Workflow services, and Remote Desktop
- These require the R2 update for Windows Server 2012
- You want the following components (64bit where available)
- Windows 8 Hyper-V, VMWare, or VirtualBox and the Extension Pack
- I tested this with Hyper-V only
- Windows Server 2012 R2 - MSDN
- AD Domain Controller
- Remote Desktop Services
- SQL Server 2014 Developer Edition (or Enterprise / BI) - MSDN
- Analysis Services (SSAS)
- Integration Services (SSIS)
- SharePoint integrated SQL Server Reporting Services (SSRS)
- SharePoint Server 2013 w/SP1 Enterprise - MSDN
- MS Office 2013 Pro Plus (32 bit recommended) - MSDN
- Visual Studio 2013 Premium or Ultimate - MSDN
- SharePoint Designer 2013 (32 bit - same bits as Office 2013)
- Must be the same bit level as MS Office
- Office Web Apps Server 2013 with SP1 - MSDN
- NOTE: This requires another VM instance and is not covered in this article
- Optional free products
- hMailServer
- Team Explorer for Visual Studio 2013
- OneDrive for Business
- AnkhSVN
- Google Chrome
- Firefox
- Safari
- Firebug
- Fiddler
- Paint.Net
- Office Web Apps
- PowerGUI
- with SharePoint PowerPack
- Optional purchased products
- Your workstation must be running a 64bit processor with Hardware Virtualization enabled
- You must have enough memory (6 GB), disk space (60 GB), and processor power (2 cores) to run the VM and hold all snapshots. Disk space will need to grow as you add content.
- I highly recommend running this VM from a solid state drive (SSD) for optimum performance. Disk speed is the greatest limiter for performance and if your RAM is limited, then the SSD swap file will help compensate.
- You must have access to and appropriate licensing for above products
- ex: MSDN Subscription
- You must have time (about 8 hours) to install everything.
- Hints:
- Look for "Wait" for good break points
- Snapshots can be used to create other virtual machines or to test minimally installed environments
- Hyper-V, VirtualBox and VMWare specific settings will be called out
- Download the Software Listed Above - Wait
- Enable Windows 8 Hyper-V, install VMWare, or install VirtualBox and the Extension Pack
- Hyper-V: Enable a Shared/NAT virtual switch
- ICS can only be set up from one network card at a time in Windows 8 so if you have a laptop and switch between WiFi and Ethernet you will need to change the ICS if you need the VM to access the internet
- Create a new virtual machine named "sp2013"
- Hyper-V: Generation 2 option
- 6144 GB RAM (not dynamic)
- Network: Use a Shared/NAT connection
- 125GB dynamically expanding boot hard disk
- You will likely use 45GB of this without any content
- Increase the processors: 2-8 range
- Mount the Windows Server 2012 R2 ISO
- VirtualBox: Enable RDP support
- Start the sp2013 virtual machine and boot from DVD
- Hyper-V: Hold down a key to boot to DVD
- Don't wait till the prompt to "Press a Key" or you will get this error: "Boot Failed. EFI SCSI Device."
- The Windows Server 2012 R2 installer should begin
- Select Windows Server 2012 Standard (Server with a GUI)
- Select Custom (new install)
- Short Wait
- Set a new administrator password
- pass@word1
- Install VM guest tools (none for Hyper-V)
- VirtualBox: VirtualBox Guest Additions
- Auto Reboot
- VMWare: VMWare Tools
- Configure Server Manager: Local Server properties
- Rename the server to sp2013 (Both the name and the computer description)
- Note: If you forget this step, you will have a randomly named server.
I have included instructions for aliasing and configuring a randomly named server - Restart later (so we can shut down instead)
- Enable Remote Desktop
- Disable IE Enhanced Security Configuration
- Shut down and take a Snapshot named "Windows Install" then boot the machine
- Server Manager Dashboard: Add Roles
- Server Roles
- Active Directory Domain Services
- Add features and Include management tools
- Application Server
- DNS Server
- Add features and Include management tools
- Ignore Static IP warning
- Web Server (IIS)
- Add features and Include management tools
- Features
- ASP.NET 4.5 (under .NET Framework 4.5)
- Telnet Client
- SMTP connectivity troubleshooting tool
- User Interfaces and Infrastructure
- Desktop Experience
- Also adds Ink and Handwriting Services
- Application Server / Role Services
- Web Server (IIS) Support
- Add features and Include management tools
- Allow auto-restarts then Install
- Short Wait
- Click "Promote this server to a domain controller"
- Select "Add a new forest"
- Root domain name: sp.local
- Next
- Forest and Domain functional level: Windows Server 2012 R2
- Password: pass@word1
- Continue pressing Next until Install
- Short Wait for NetBIOS domain name to be recognized and for Prerequisite check
- Ignore the 3 warnings
- Install
- Short Wait
- Accept reboot prompt
- Log back in as Administrator
- Server Manager Dashboard: Add Roles
- Features
- ASP.NET 3.5 Features
- Before installing specify the following alternate path
- D:\sources\sxs (where D: is the Windows Server DVD drive)
- Verify Internet connectivity by opening Internet Explorer and browse to Bing
- Disable SmartScreen Notifications from the Action Center
- Windows Update: Turn on auto updates
- Install Updates and Wait
- Reboot when prompted
- Some errors in windows update may occur as they are installed and the server is rebooted. Here are some solutions:
- Several updates fail and require reboots
- Open System Configuration (msconfig)
- Check Selective startup
- Uncheck Load Startup items
- OK
- Restart when prompted
- Hyper-V: Security Update for Windows Server 2012 R2 (KB2920189) Failed 800F0922
- Only occurs on Gen 2 Hyper-V with Secure Boot
- Temporarily disable Secure Boot in the VM settings while installing the update
- Open Active Directory Administrative Center (Pin to desktop and Start menu)
- Administrator account
- Account / Password Options: Password never expires
- Organization / Email: administrator@sp.local
- Create a user in the Users OU
- Full Name: User
- User SamAccount: sp\user
- pass: same as Administrator password
- Account / Password Options: Password never expires
- Organization / Email: user@sp.local
- Add User to the Users group
- Create a user in the Managed Service Accounts OU
- Full Name: spservice
- User SamAccount: sp\spservice
- pass: same as Administrator password
- Account / Password Options: Password never expires
- Open Group Policy Management console
- sp.local / Domains / sp.local / Domain Controllers / Default Domain Controllers Policy
- Right click and Edit
- Policies / Windows Settings / Security Settings / Local Policies / User Rights Assignment
- Edit Allow log on locally
- Add the Users group
- Stop and Disable the following Services
- DFS Namespace
- DFS Replication
- Shut down, snapshot "DC and IIS", and start virtual machine
- Mount the SQL Server ISO to the VM DVD drive
- Start SQL Server Setup
- Install Stand-alone
- Use MS Updates
- Ignore DC and Firewall warnings
- All Features with Defaults
- Continue
- Server Configuration / Service Accounts
- Use the same account for all SQL Server services
- specify the sp\spservice account and password created above
- Continue
- Analysis Services Configuration
- Account Provisioning
- Add Current User
- Reporting Services Configuration
- Install only for both
- Distributed Replay Controller
- Add Current User
- Continue then Wait
- Shut down, snapshot "SQL Server", and start virtual machine
- Open SQL Server Configuration Manager
- SQL Server Network Configuration
- Protocols for MSSQLSERVER
- Enable Named Pipes
- Restart the SQL Server (MSSQLSERVER) service
- If your server is randomly named - not sp2013
- DNS Manager
- Forward Lookup Zones
- sp.local
- Add a new alias
- Name: sp2013
- FQDN: Browse to splocal\servername
- servername will be a randomly generated value
- Mount the SharePoint Server 2013 iso
- Start the Prerequisites installer
- Run D:\Splash.hta (open with MS HTML Application Host)
- Short Wait
- Finish to restart
- Start the SharePoint Install
- Enter your Enterprise license key
- Wait
- Run the Configuration Wizard
- Create a new server farm
- Configuration Database
- Server: sp2013
- Name: SharePoint_Config
- Username: sp\spservice
- Password: same as above
- Farm Security Settings
- Passphrase: same as admin password above
- Central Admin Web App
- Port: 8000
- Auth: NTLM
- Wait
- Finish
- IE will open to the central administration website.
- Join the experience program (or don't)
- Start the wizard and configure as follows
- Central Admin Initial Farm Configuration Wizard steps
- Use existing managed account: sp\spservice
- All items should be checked except for Lotus Notes
- Next
- Wait
- Create Root Site Collection
- Title: SP2013
- URL: /
- Experience version: 2013
- Template: Collaboration \ Team Site
- OK
- If you encounter a
error, skip to the next step (AAM config) then delete the running timer job, restart IIS, and re-run the wizard from Central Admin - Finish
- Open central admin (http://sp2013:8000) and add the following Alternate Access Mapping (AAM) internal URLs
- Central Admin Application (http://sp2013:8000)
- Default zone
- Internal URL: http://sp2013.sp.local:8000
- SharePoint - 80 (http://sp2013)
- Default zone
- Internal URL: http://sp2013.sp.local
- Set the browser home page to http://sp2013
- Configure Search from Central Admin
- Central Admin \ Manage service applications \ Search Service Application (first one)
- Content Sources
- Local SharePoint Sites
- Incremental every 30 minutes (or other value here based on needs)
- Recommend disabling incremental crawls for performance
- Note: Continuous crawls will require more resources on VM startup
- Start a full Crawl
- Open http://sp2013 in IE
- Add sp\administrator to the sp2013 Members group
- Add sp\user to the sp2013 Visitors group
- Validate that the following workset
- Any workflow
- Search scopes
- My Sites and User Profile
- Performance Tuning
- Run the following PowerShell scripts (in SharePoint 2013 Management Shell)
- Set-SPEnterpriseSearchService -PerformanceLevel Reduced
- Disable the following system services unless/until needed
- SQL Server Analysis Services (MSSQLSERVER)
- From Automatic to Disabled
- SQL Server Reporting Services (MSSQLSERVER)
- From Automatic to Disabled
- Optional (if you do not need SharePoint search and want to reduce memory footprint)
- Remove the incremental crawl scheduled earlier
- More tips from Andrew Schwenker
- Shut down, snapshot "SharePoint Configured", and restart
Optional Configurations
- Setup your app (add-in) host domain: MSDN Documentation