This is the changelog page for Set-Cs2013Features.ps1. You will find a complete list of released versions, their dates, and the features and issues addressed in each. Please refer to the script’s main page for more information including download links, installation details, and more.
v3.0 – 10-06-2014
- Rewrote the New-ProgramInstallation function to reuse code that was otherwise appearing multiple times throughout the script. This resulted in several dozen lines of code that was no longer needed being removed. It also allows for more accurate logging, including finally fixing an issue where the script would report something was installed even though the installation hadn’t yet finished.
- Rewrote the New-Tile function. The original method was fine for just a few options, but it got out of control and needed to be streamlined. Result is several dozen fewer lines of code with no loss in functionality or performance.
- Option 54 Added desktop shortcut for Microsoft Message Analyzer. Thanks to John for requesting it.
- Option 71 Added taskbar shortcut for Microsoft Message Analyzer. Thanks to John for requesting it.
- fixed prompt for FW exceptions to use New-Popup function instead of separate code
- added logging for Power Plan prompt
- Option 72 added to REMOVE the Windows Store app from the taskbar (2012 R2)
- Script now checks to see if UAC is enabled when choosing option 5 (OWAS). If it’s enabled, you’re prompted to disable it (which requires a reboot). The script has issues attempting to mount the ISO files for OWAS when UAC is enabled. Added a bunch of error handling for option 5 as well. Can’t believe I didn’t do that previously.
- updated option 85 (SDN) to 2.1. See http://www.microsoft.com/en-us/download/details.aspx?id=44274 for more info
- Added the Lync wireshark plugin to option 30 (Wireshark). It’s really only recommended on edge servers. See http://www.mylynclab.com/2014/05/microsoft-lync-wireshark-plugin.html for more info
- Option 99 (exit script) now checks if a reboot is required, and prompts if it is
v2.9 – 09-22-2014
- added some minor error handling code
- Changed logging for SQL instances to show if it exists before it says its installing
- fixed a bug where .Net Framework 4.52 could still be installing when a reboot prompt is displayed, potentially causing the machine to reboot mid-install
- Script now flags for ANY Lync server installation where the server is set for auto updates. Really, folks – DON’T AUTO UPDATE!
- Updated SilverLight download to v5.1.30514.00
- Updated Wireshark download to v1.12.10
- Updated Microsoft Message Analyzer to v1.1 (see http://blogs.technet.com/b/messageanalyzer/archive/2014/09/15/announcing-the-message-analyzer-1-1-release.aspx)
- Added Option 16 – SCOM Watcher Node prerequisites
- Updated Option 25 – now also sets OWAS service to restart (if run on an OWAS server, of course)
- Added Option 85 – Lync Server SDN API 2.0 [Download only] added, and includes the API installer, the management utility, the docs, and the .chm file.
- Script now checks for non-root certificates in the root certificate store & warns if any are found.
- Fixed an issue with option 14 (scheduled task) where an error would display if you chose that option and the scheduled task already existed.
v2.8 – 08-13-2014
- Created Desktop Shortcuts Menu (option 40) and moved all of the desktop shortcut options to it.
- Created Taskbar Shortcuts Menu (option 60) and moved all of the taskbar shortcut options to it.
- Created Download Menu (option 80) and moved all of the [DOWNLOAD ONLY] options to it.
- Added the following options when calling the script:
- IncludeSSMS (automatically installs SQL Server Management Studio for those options that normally prompt for it)
- IncludeTelnet (automatically installs telnet client for those options that normally prompt for it)
- IncludeFW (automatically adds firewalls exceptions for those options that normally prompt for it)
- IncludeStandard (automatically installs the extra SQL instance needed on standard edition front ends)
- IncludeHighPower (automatically configures the high power system power setting for those options that normally prompt for it)
- Changed some of the logging so less is shown on the console, especially around file downloads. That info is still logged to the log file, though.
- Fixed a quirk where an error would get logged during the installation of SQL Server Management Studio if the TargetFolder parameter was specified, and it’s value was on another drive. The installation was, however, fine. Thanks to Simon for reporting that.
- Replaced original netsh code for creating firewall rules with native New-NetFirewallRule cmdlet
- The usual code optimization, logging tweaks, etc.
- Updated SQL Express 2012 from SP1 to SP2 for the roles that install SQL instances (Front End, Edge, Persistent Chat, Director, etc.)
- Fixed a problem with option 20 (SQL Mgmt Studio) due to a typo. Thanks to Japheth for pointing it out.
- Added .Net Framework 4.5.2 when installing OWAS (option 5) on Server 2012 R2 to deal with the issue mentioned here: http://blogs.technet.com/b/office_web_apps_server_2013_support_blog/archive/2014/07/24/office-web-apps-2013-on-windows-server-2012-r2.aspx
- Added some logging around AV solution installed
- Updated Wireshark to 1.12.0
v2.7 – 06-26-2014
- Implemented a fix for a super minor display anomaly when the script starts to reboot, but the next line is executed before the script stops. It didn’t hurt anything the way it was, but it bugged my OCD.
- Fixed logging error during OWAS install (option 5)
- Fixed several issues that occur when attempting to disable auto updates during OWAS install (option 5)
- Tweaked prompt when a file download fails
- Added code to automatically restart script with proper option after a reboot during prereq installs. This still requires you to manually login. But once you do, the script will kick off again.
- Added a check around the firewall rules to verify that the service is running first. Thanks to Simon for that.
- Upgraded Wireshark to 1.10.8 – looking for an easier way to find the latest version dynamically. I have a method that works now (not yet part of the script), but isn’t bullet proof yet.
- Upgraded Silverlight to 5.1.30214.0 – looking for an easier way to find the latest version dynamically. Thanks to Simon who helped track down an issue with installations that already had a newer version (albeit 32 bit) installed.
- TONS of updates to logging, including more info, updated info, and corrected info.
- Added option (option 38) to create the Lync file share on the local computer.
v2.6 – 06-10-2014
- Tweaked code that creates desktop shortcuts to be a little more flexible.
- Removed the code that copied the tmx file for the debugging tools as the January 2014 update apparently fixed that issue. Thanks to Adam Ball for the info.
- Updated Wireshark code for version 1.10.7
- Changed link for custom portquery config file to a file on my blog site since OneDrive URLs are difficult to deal with programmatically. Thanks to flinchböt for allowing me to do that.
- Fixed an issue with the code signing detection/logging
- Various other tweaks that no one other than myself will ever notice.
v2.5 – 05-24-2014
- fixed two typos in the OWAS language pack prompt. Thanks to Mitch for pointing it out.
- option 5 – tweaked the prompt for disabling automatic windows updates
- option 33 – set power plan to “High Performance” added. Also added as a prompted option for options 1-6
- recommended windows updates config is now logged. I may throw an alert in the future if this is false
v2.4 – 04-29-2014
- Added some more logging
- Added OWAS SP1 (the re-released version)
- fixed spelling error
- added .Net 3.5 as a prereq for SQL Server Management Studio. Normally not an issue in full server installs, but in some management server scenarios, it’s not always installed beforehand. This should resolve that.
- tweaked menu code to not display menu after using option 98
- Added prompt to install OWAS English language pack, although it does require that the user manually accept the EULA.
- added reboot prompt when showing $RebootWarning
- prompt to disable Automatic Updates for OWAS (See “Planning updates for Office Web Apps Server – http://technet.microsoft.com/en-us/library/jj219435.aspx)
- firewall status is now logged – I’ll be adding an alert if the FW is disabled in a future version
- fixed the wait loop for Wireshark. It now correctly waits until both Wireshark and WinPcap installers are done
v2.3 – 02-08-2014
- replaced write-host with write-output where possible. See http://www.jsnover.com/blog/2013/12/07/write-host-considered-harmful/
- cleaned up param blocks per Jeff Hicks
- option 12: tweaked to check for .net 4.5
- added logging on some options
- lots of minor code cleanup/optimization
- comment help optimized per suggestions at http://www.lazywinadmin.com/2014/01/powershell-tip-adding-help-in-param.html
- swaped in updated New-PsUpdateHelpScheduledTask function
- swaped in updated Set-ModuleStatus function
- swaped in updated Write-Log function
- swaped in updated Test-ScriptUpdates function
v2.2 – 01-20-2014
- added preliminary code to install Sql Native Client when prompted. It’s required for topology builder if you’re going to merge OCS topologies. Most common scenario is management servers that don’t have a rtclocal instance. Look for an option soon.
- added preliminary PowerShell firewall rules option & firewall notification option. Look for an option soon.
- option 30: updated link to new version (10.5) of WireShark. Also used an alternate path that should continue to work as new versions are released. Thanks to Mitch.
- added prompt to exit script if a file download fails. Basically just better error handling.
- Cleanup around the InitialMenuOption feature to ensure we don’t see some weirdness.
- option 31 added: Enable Photo URL (See http://www.lynclog.com/2013/11/lync-2013-client-and-and-pictures-from.html for description)
- option 32 added: fix font for Control Panel (See http://www.ehloworld.com/2448)
- cleanup of the Test-IsServerCore function
v2.1 – 12-17-2013
- verify server is not core. Thanks to John.
- better error detection when Add-WindowsFeature fails
- strip trailing slash on $Win2012Source
- option 1: Added Windows-Identity-Foundation to the Windows Features required. Thanks to Mitch.
- option 3: fixed missing log message indent value when Win2012Source isn’t valid. Thanks to Patrick @ MCS.
v2.0 – 11-26-2013
- option 3: Added prompt and prereqs for Lync Room System Admin Portal
- option 3: Added code to create firewall exceptions for Get-CsConnections.ps1 when installing RTCLocal SQL instance.
- option 5: changes to features installed for Office Web Apps servers based on feedback
- option 5: added WAC update from KB2837634
- option 18: changed to the new Microsoft Message Analyzer (from NetMon 3.4)
- option 30: Wireshark – downloads file and starts installation. Automated installation isn’t really possible.
- Added logging of more information
- Removed some aliases to conform with best practices
- option 17: updated link to download file for portqry XML file. The author of the file uses SkyDrive for the download, so the URL changes every time he posts an update.
v1.9 – 10-28-2013
- Added support for Windows Server 2012 R2
- Fixed Test-IsProxyEnabled that could throw an error if a proxy has NEVER been configured on a server
- Test-IsSigned comment help updated
- Test-ScriptUpdates comment help updated
- Corrected a typo
- Reworded some error messages and warnings
v1.8 – 08-01-2013
- Tweaked regex for $SQLPath to support paths with spaces (thanks to David Wyatt)
- Removed some instances of text being sent to the console during file downloads to make things a little cleaner. Info is still sent to the log file, though. Write-Log tweaked to verify event log actually exists if writing to it
- Added code to restart script in an elevated session if the current session isn’t elevated (previously the script just throw an error and exited)
- Option 5 updated to include Net-Http-Activation per http://michaelvh.wordpress.com/2013/07/29/the-curious-remedy-for-the-not-so-curious-health-problems-of-the-office-web-apps-server/
- Option 19 fixed typo that caused an error
- Option 24 updated to verify Media Foundation feature is installed
- Option 28 Added download of Lync-Skype Connectivity Provisioning Guide
- Option 30 started – configure push notifications
v1.7 – 05-31-2013
- option added (option 25) for Set recovery of Lync services to restart – this comes from my post at http://www.ehloworld.com/662
- option added (option 26) Lync Server 2013 Watcher Node [DOWNLOAD ONLY]
- option added (option 27) Lync Server 2013 Management Pack & Documentation [DOWNLOAD ONLY]
- option added (option 28) Enable Skype Federation
- option added (option 97) to visit script’s website
- intro code for script update check – right now if the script’s file creationdate is more than 90 days old, you’ll get a prompt asking if you want to check for an update.
- auto detection of first CD-ROM drive for default $Win2012Source (previously default to d:)
- updated Test-IsRebootRequired function to check more registry keys to cover Windows Update reboot required as well; added code to see if SCCM 2012 client requires a reboot
- various logging bug fixes as well as logging more info to the file – eventually this will result in less being sent to the console screen.
- switched here-strings to double quotes to work around a random formatting issue in UltraEdit, and to streamline using variables in them
- initial code for proxy detection and credentials (per @TomArbuthnot) – it hasn’t been extensively tested yet.
- better error detection/suppression/logging in New-FileDownload and New-ProgramInstallation functions
- fixed the documentation help download (option 13) code to always download the file – even if it already exists locally (to account for updated file)
- additional work on the sysinternals option (not yet availabled). Access to \\live.sysinternals.com seems to be pretty laggy. Trying to work around that.
- added some validation around the $TargetFolder parameter. I really hate dealing with regex, but do appreciate what they can do.
- some optimization of the New-SQLInstance and New-SQLMgmtStudio functions
- fixed some weird issue with the portqryui custom xml file download (option 17). I think it’s SkyDrive related. Might have to come up with an alternative method.
- fixed an issue with the Write-Log function which caused split log files if the script changed directories. Now set the logs to be in $TargetFolder\logs
- optimized Test-IsAdmin function – it’s now 1/2 the lines of code
- minor tweaks to Add-PinnedAppToTaskbar and Add-PinnedAppToStartMenu functions to utilize ParameterSetName
- minor tweaks to New-FileDownload function to utilize Split-Path over a longer, more complex method
- minor tweaks to convert some Where-Object lines to the PowerShell v3 method
v1.6 – 05-24-2013
- “Download latest Lync Server 2013 Cumulative Update” option added
- “Custom PortQryUI” option added per (http://flinchbot.wordpress.com/2013/05/10/portqueryui-config-xml-file-for-lync/)
- “Windows Update tile” option added
- combined tile functions
- combined SQL instance functions
- additional logging
- “Microsoft Unified Communications Managed API 4.0, Runtime (UCMA 4.0) installation” option added
- various code optimization
v1.5 – 05-10-2013
- -NoSQL option for those who insist on letting the Lync installer install the SQL instances. This means that you’ll have to update those instances.
- Better reboot handling for OS prerequisites. This should resolve the problem with some people seeing a lot of errors until after a reboot.
- Better error messages for some errors. Can’t ignore these!
- Updated Debugger Tools installation as mention in Jonathan’s post (thanks to Kevin)
- Office Web App server KB2810007 update (thanks to Randy)
- Rename to Set-Cs2013Features.ps1
- Added custom Scheduler simple URL. This automates adding a custom simple URL for the scheduler app
- Changed Standard edition server config to a prompt during regular FE install (removed -standard parameter)
- changed SQL input parameters to a single $SQLPath, with regex validation and default value. Just specify the -SQLPath [path] instead of the -SQLDir and -SQLDrive parameters.
- intro code for full logging functionality. Script will now create a log file that can be used for troubleshooting. Just basic stuff in there for now. I’ll add more later.
- updated comment based help info with additional parameter and example information
- fixed Lync Help option that was generating errors when trying to create taskbar shortcuts
v1.4 – 05-03-2013
- Added detection check for OS reboot (due to previous unfinished installation), and halt script if it’s detected. Otherwise, some Add-WindowsFeatures commands could fail.
- Added telnet client option, and prompt for it during most roles.
- Added SQL Management Studio option per Chris Elliot’s suggestion and example, and prompt during any role that has SQL instances
- Added Lync documentation help option
- Added NetMon 3.4 option
- Added Windows Update option
- Added option to define installation path for SQL instances
- Tweaked Office Web App OS prereqs to include InkAndHandwritingServices per Viggo Stomsvik’s comment
- Moved Add-WindowsFeature commands to top of order for all roles to avoid a potential error when installing SQL Express
- Added better check to determine if installing OS prereqs requires a reboot, and flagging accordingly
- Cleaned up code for scheduler custom simple URL
- Added preliminary code for SysInternals Suite install
- Moved SQL instance installs to dedicated functions and optimized
- Switched from ANSI to Unicode so that I could do cleaner looking error displays
- Switched SQL Express and SQL Management Studio installs from /quiet to /quietsimple so that there is some on-screen indication that the installs are progressing. This has no effect on the installations themselves, but it’s better than the script not appearing to do anything for 10 minutes at a time.
v1.3 – 04-29-2013
- Added Office Web App option. Includes all prerequisites, installing the roll, and the recent update for it
- Added the Director role option. Includes all OS prerequisites and the updated SQL Express instances
- Code optimization
- Added updated SQL Express instances to Edge option
- Signed script
v1.2 – 04-01-2013
- Edge server functions updated to include SQL Express SP1 (just like the FE code)
- Added Stress and Performance Tool option
- Minor code optimization
- Some code for future features
v1.1 – 02-28-2013
- Server roles added:
- Persistent Chat
- Tools and utilities added:
- Resource Kit
- Persistent Chat Resource Kit
- Features added
- PowerShell Update-Help scheduled task
- Bug fixes and tweaks
- check for $Win2012Source\sources\sxs
- Moved tiles to the All Users profile
v1.0 – 02-08-2013
- Initial version