An issue has been identified in Windows Server 2012 servers that are built as Server Core, but converted later to Server with Gui. Installation of Windows Features, either manually or via a script, fail if Windows Updates are installed BEFOREHAND. That being the case, the script below cannot be used in such scenarios. I’m working on detecting (if possible) servers that are converted, as well as researching why they fail. Thanks to John for pointing it out. It’s likely that the issue detailed here is the cause.
This script will assist in getting servers ready for the installation of Microsoft Lync Server 2013 on Windows Server 2012 and Windows Server 2012 R2. This includes the operating system prerequisites, SQL Express (where necessary), Silverlight, and more. Some post installation options are also available, and include Microsoft tools such as the debugging tools, the Best Practices Analyzer (BPA), Connectivity Analyzer, and more. Where the script needs files available online, it will automatically download them. More options will be added as I have time, and can properly test. This includes Edge, Director, and Mediation server prerequisites, and more tools. If you have suggestions, please feel free to comment below.
The current options are:
1. Director – Installs the OS prerequisites and SQL Express instances required to install this role.
2. Edge – Installs the OS prerequisites and SQL Express instances required for this role.
3. Front End – includes the Operating System prerequisites, Microsoft Silverlight, as well as the installation of SQL Express SP1 and creation of the various required instances. The SQL Express installs are done because Lync Server installs the RTM version by default. So installing the SP1 version saves a long update later. Note that each instance takes 3-5 minutes to install – longer on slower machines. Enterprise edition servers have two instances, RTCLocal and LyncLocal, and Standard edition servers also have the RTC instance. See the syntax and example sections below on how to call the script for the two types of servers. This option will also prompt if you’d like the required firewall exceptions created for my Get-CsConnections.ps1 script. This option will also prompt if the Lync Room System Admin Portal will be installed. If you select Yes, the ASP.NET MVC 4 for Visual Studio 2010 SP1 and Visual Web Developer 2010 SP1 prerequisite for that is installed.
4. Mediation – still being tested to make sure I didn’t miss something.
5. Office Web App – Installs the OS prerequisites required, then installs the Office Web App binaries, and then installs several recent updates. Almost everything needed to deploy an Office Web Apps server.
6. Persistent Chat - Installs the OS prerequisites and SQL instance required for this role.
7. Lync Server 2013 Resource Kit - tools that make troubleshooting and administrating a Lync environment easier, such as Address Book config, etc.
8. Lync Server 2013 Persistent Chat Resource Kit – tools useful for Persistent Chat environments.
9. Lync Server 2013 Debugging Tools - includes the logging tools such as OCSLogger and Snooper. Helpful for troubleshooting.
10. Lync Server 2013 Stress and Performance Tool – prepare, define, and validate performance
11. Lync Server 2013 Best Practices Analyzer – this tool helps identify any issues from a best practices perspective
12. Lync Server Connectivity Analyzer – identifies any issues that may result in connectivity problems for mobility clients including the Lync Windows Store app
13. Install/Update Lync Server 2013 Documentation Help
14. Create scheduled task to automatically update PowerShell help files daily. I discuss this in Function: New-PSUpdateHelpScheduledTask – Auto Update PowerShell Help
15. Launch Windows Update
16. Create Shutdown, Logoff, and Restart tiles on desktop – this is a streamlined version of Create a Shutdown/Restart/Logoff Windows 8 Tile for the Start menu (PowerShell) that puts easy to reach Shutdown, Restart, and Logoff tiles on the Start screen. In version 1.1, this was changed from the Start page of the logged on user who runs the script to the desktop and start page of all users.
17. Custom PortQryUI
18. Install Microsoft Message Analyzer
19. Add custom Scheduler simple URL – if you’d like to have a simple URL for the scheduler app, such as scheduler.contoso.com, this option will handle the configuration of that. Note that this option requires that the simple URL provided be in the Subject Alternative Names (SAN) list of the certificate on your Front End servers. See Understanding the Lync Web Scheduler for additional info.
20. Install SQL Server 2012 Management Studio
21 Install telnet client
22. Download latest Lync Server 2013 Cumulative Update – this ONLY downloads the file. It does not install it.
23. Create Windows Update tile on desktop
24. Microsoft Unified Communications Managed API 4.0, Runtime (UCMA 4.0) – this is required if you’re going to run sefautil.exe from the resource kit. It’s still recommended that sefautil.exe be used on a dedicated box.
25. Set recovery of Lync services to “restart”. See Set recovery of Lync services to “restart” for more info.
26. Lync Server 2013 Watcher Node [Download Only]
27. Lync Server 2013 Management Pack & Documentation [Download Only]
28. Configure Skype Federation. This removes the MSN Public Provider and adds the Skype Public Provider, complete with icon. Download includes the Lync-Skype Provisioning Guide. See http://blogs.technet.com/b/lync/archive/2013/05/23/lync-skype-connectivity-available-today.aspx for more info.
29. Lync 2013 Rollout and Adoption Success Kit (RASK) (DOWNLOAD ONLY)
30. Wireshark. This downloads the installer and starts it. Due to the fact that WinPCap can’t be silently installed, a silent install of Wireshark isn’t possible. You’ll just have to go through the install manually.
31. Enable Photo URL option. Enables the photo URL option in the client. See http://www.lynclog.com/2013/11/lync-2013-client-and-and-pictures-from.html for more info.
32. Fix Control Panel font. Reverts the font in the Control Panel back to the original Segoe UI. See Resetting the Font in Lync Server Control Panel – Goodbye Times New Roman!
Simply choose your desired option. When the script is finished, it will return to the menu.
Note: The installation of some Lync Server 2013 roles requires some .Net 3.5 components, which are not installed in Windows Server 2012 by default. So the script will need to know where your Server 2012 installation media is. The script defaults to the CD-ROM/DVD-ROM drive with the lowest drive letter (typically D: or E:), but can be configured for other locations.
The script will also create a log file that can be used for troubleshooting. The log file is created in a logs folder inside the $TargetFolder (by default, c:\_install)
C:\Set-Cs2013Features.ps1 [[-TargetFolder] ] [[-Win2012Source] ] [[-SQLPath]] [-WhatIf] [-Confirm]
This will launch the script with the default options for Enterprise edition servers
Set-Cs2013Features.ps1 -Win2012Source e:
This will launch the script using the e: drive for the source of the Windows Server 2012 installation files
Set-Cs2013Features.ps1 -sqlpath "d:\sqlexpress"
This will install any related SQL Express instances to the specified path
Execution Policy: Third-party PowerShell scripts may require that the PowerShell Execution Policy be set to either AllSigned, RemoteSigned, or Unrestricted. The default is Restricted, which prevents scripts – even code signed scripts – from running. For more information about setting your Execution Policy, see Using the Set-ExecutionPolicy Cmdlet.
v2.3 – 02-08-2014 - Set-Cs2013Features.v2.3.zip
v2.2 – 01-20-2014 – Set-Cs2013Features.v2.2.zip
v2.1 – 12-17-2013 – Set-Cs2013Features.v2.1.zip
v2.0 – 11-26-2013 – Set-Cs2013Features.v2.0.zip
v1.9 – 10-28-2013 – Set-Cs2013Features.v1.9.zip
v1.8 – 08-01-2013 – Set-Cs2013Features.v1.8.zip
v1.7 – 05-31-2013 – Set-Cs2013Features.v1.7.zip
v1.6 – 05-24-2013 – Set-Cs2013Features.v1.6.z1p
v1.5 – 05-10-2013 – Set-Cs2013Features.v1.5.zip
v1.4 – 05-03-2013 – Set-CsLync2013Prerequisites.v1.4.zip
v1.3 – 04-29-2013 – Set-CsLync2013Prerequisites.v1.3.zip
v1.2 – 04-01-2013 – Set-CsLync2013Prerequisites.v1.2.zip
v1.1 – 02-28-2013 – Set-CsLync2013Prerequisites.v1.1.zip
v1.0 – 02-08-2013 – Set-CsLync2013Prerequisites.v1.0.zip
See the changelog for information on what’s changed/included in each version.