This is the changelog page for Script: Install-OfficeWebAppsLanguagePacks.ps1 – Easier Installation of Selected Language Packs. 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.
v1.0 – 03-07-2015
- Initial version
This is the changelog page for New-SignedScript. 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.
v1.3 – 09-18-2016
- Now includes a selection box when more than one valid code signing certificate is found.
v1.1 – 06-10-2014
- Better handling when there is more than one code signing cert. Script now finds the first valid code signing cert and uses that.
- Better validation that the script is successfully signed
v1.0 – 09-20-2012
- Initial version
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.8 – 03-25-2015
Updated features/options & fixes
- option 5 (OWAS) – the English language pack installation is now FINALLY silent. This removes the need to manually click through the installation routine. This also introduces a known issue where the language pack installation will fail if -TargetFolder contains a space. I’m working to resolve that.
- option 5 (OWAS) – changed the GUID that is checked for installation of the English language pack. Seems the OWAS install created the previous one, which meant the detection for the language pack could give false results.
- Additional handling around the -tail function to avoid visible errors
- option 2 (Edge) – minor tweak so that the Remote Desktop firewall policy for the Public profile is NOT enabled if the edge server is domain joined.
- If -DownloadAll or -DownloadOnly options are specified, the server version check, core check, and reboot check are all skipped.
- option 30 (WireShark) – updated to 1.12.4, including WireShark and the two files I created to install and configure WireShark. Was also able to shave more than 27% of the processing time off the configuration task.
- option 50-1 (Lync Help File) – fixed issue where extra errors would occur if the file is not present when the install routine is called.
- Fixed an issue with selecting “abort” during failed downloads and the log file session not closing when using -tail
- Streamlined some of the code for calling the WireShark config program so that it’s not version specific
v3.7 – 02-27-2015
- 80-7 Event Zero connector download added
Updated features/options & fixes
- Started adapting the script to support installing Skype for Business Server
- option 3 (Front end) fixed the issue where Telnet-Client would get installed on front ends, even if you declined it.
- option 21 (ARR) while this option was introduced in v3.6, I neglected to add it to the menu. That’s now done.
- fixed an issue where some downloads would throw an error & the script would exit if IE had NEVER be opened by the user. This is because a registry key that contains some proxy info isn’t created till IE is opened the first time. The script has always looked for that key to see if it needed to deal with a proxy. So the solution is that if the key doesn’t exist, the script will create it, and set it to zero (the same default setting IE uses if there is no proxy). If a GPO or other policy comes by and sets it later, that’s still fine. We’re just creating it a little sooner.
- New-FileDownload function updated to support retries when non-default destination folders and/or filenames are defined.
- Removed the MSMQ features for Director prereqs. I swear I removed this before, but they’re not required and not listed in the official doc for prereqs at https://technet.microsoft.com/en-us/library/gg398686.aspx
- Fixed an issue where some users would get an error about $PowerShellTailId when exiting the script. This was a trivial error that didn’t affect functionality of the script, and could safely be ignored. But it’s dealt with now.
- Little bit of code cleanup per best practices (a constantly evolving task)
- option 18 – Message Analyzer updated to v1.2 (build 4.0.7285.0)
- option 2 – edge server – minor change where DNS is not removed from the internal NIC when the edge server is domain joined
- Minor tweak to Set-NICConfig function to handle more complex queries
- Minor tweak to -tail option to deal with multiple PowerShell windows open
- Option 5 (OWAS) now cycles the WACSM service after installing the language pack
v3.6 – 02-12-2015
- option 21 – ARR (“Pirate Proxy”) prerequisites. This installs the Windows features, and downloads the Web installer. it also verifies the server is not domain joined, then goes through the process of setting the primary DNS suffix (same as option 50-13). Also configures NICs to remove DNS and gateway from the internal NIC, remove dynamic registration in external NIC, and prompt to disable both lmhosts and NetBIOS over TCP/IP.
- option 50-13 – Configure primary DNS suffix. This prompts for a domain name, assigns it as the primary DNS suffix, then reboots. This configuration is required for edge and ARR (reverse proxy) servers.
Updated features/options & fixes
- Event log option in Write-Log is finally fixed, and now supports writing to the Lync Server and OWAS event logs as well.
- Suppression of some warnings when Windows features are installed and Windows Update is disabled or not configured
- option 5 – Now checks if server is part of an OWAS farm before installing updates & throws an error if it is
- fixed typos in Test-InvalidCerts when writing warnings. Thanks to Manfred for the heads up.
- option 90-3 – Now checks if the Lync module is installed before attempting to cycle the Lync services. Thanks to Manfred for the heads up.
- -DownloadAll now also includes the DigiCert certificate utility. Thanks to @chrislerhatx for the idea.
- option 3 (edge): now checks for domain membership and throw a warning if they are domain joined, as that’s not recommended.
- option 3 (edge): If not domain joined, the server is checked for a primary DNS suffix. If it’s not configured, the script will prompt for a domain name, adds it, then prompts for a reboot. Essentially the same as option 50-13.
- option 3 (edge): now automatically runs the NIC config to remove DNS and gateway from the internal NIC, remove dynamic registration on the external NIC, and prompt to disable both lmhosts and NetBIOS over TCP/IP.
- cleaned up Install-TelnetClient function
- tweaked New-ProgramInstallation to not require install switches. This was necessary as the WireShark install and config programs don’t have switches
- tweaked New-ProgramInstallation to finally squash the problem with checking for processes and throwing an error that couldn’t easily be suppressed. This was most evident when building OWAS servers, as the .Net Framework 4.5.2 would always report it failed, when, in fact, it succeeded.
- -tail now gracefully exits when the script exits (in non-reboot scenarios)
- updated SDN downloads to v2.11 (9235.1)
- Option 5 (OWAS) updated to include February update 2956101
- option 30 (WireShark) now automatically installs and configures for common Lync settings, including:
- adds Source Port (resolved) column
- adds Destination Port (resolved) column
- adds DSCP column
- Configures RTP protocol “Try to decode RTP outside of conversations”
- Configures SIP protocol for ports 5060-5068 (instead of WireShark’s default of 5060)
- Sets the time format to human readable format
v3.5 – 02-02-2015
Updated features/options & fixes
- option 50-12 (Edge servernetworkconfig)
- now removes the gateway on the internal NIC
- now removes the configured DNS servers on the internal NIC
- now removes the dynamic DNS registration for the external NIC
- now prompts & if accepted, disables lmhosts lookup on all NICs
- now prompts & if accepted, disables NetBIOS over TCP on all NICs
- option 5 (OWAS server)
- updated to include January 2015 Cumulative Update (from SP1)
- Added Web-http-logging to installed Windows components based on recent MS documentation change
- comment help on many functions updated
- Revamped code used for mounting/dismounting disk images. It’s now much cleaner code-wise, cleaner console output, and about 10 lines less code.
- -Win2012Source now supports an unmounted .iso file – thanks to Lasse Nordvik Wedø (@lawedo) for the suggestion
- -Win2012Source now survives reboots by the script
v3.4 – 01-26-2015
Added options and features
- Added -Tail option which shows a tail of the log file as it’s written (think *nix). It automatically restarts if the script reboots the server, too. Really only beneficial to me, but if you use it and find it useful, let me know. Thanks to mjolinor on the Technet forums for help with getting the syntax right.
- Option 50-11 – Opens the hosts file in Notepad for editing. This is convenient on edge servers.
- Option 60-15 – Creates Notepad Desktop Shortcut for Edge servers to open the Hosts file (Thanks to Hany for the idea)
- Option 50-12 – Configure edge static routing – adds the static routes for all private address ranges to use the internal NIC. The user is prompted with a list of NICs discovered, and asked to pick which will be used for the internal connection. Once picked, the script will determine if there is already a gateway defined. If so, it will use that IP address to create the static routes. If there is no default gateway assigned, the user is prompted to enter the gateway that the static routes should use. The user still must manually remove any hard coded gateways on that NIC.
Updated options and fixes
- Option 50-8 (Upgrade to PowerShell 4.0) now only downloads the files if it needs them. Dunno how I overlooked this previously.
- Option 50-2 Changed the New-PSUpdateHelpScheduledTask function. It now also cleans up the temp files created by the Update-Help command. Otherwise, over time, you’ll end up with significant temp folder bloat (about 50MB every time it runs). Thanks to @UCGarry for the heads up. If you’ve used a previous version of the script to create the scheduled task, just run this version. It will delete the existing scheduled task and create a new one.
- Tweaked New-Shortcut function to account for shortcuts that need arguments. Also cleaned up some of the logging so that if the shortcut already exists, it’s more obvious.
- Updated Wireshark download to 1.12.3 (from 1.12.2)
- Updated SQL Server 2012 Management Studio Express to SP2 (from SP1)
- -DownloadOnly bypasses RestartRequired check
- Reboot option (98) now correctly sets running status when rebooting
- Message Analyzer upgraded to v1.2 (from 1.1)
- Change reboot prompt when disabling UAC to popup style instead of console prompt to match other prompts in the script
- Option 15 – Windows Update – now exits the script to ensure the script closes gracefully. This is trivial since most Windows Updates would require a reboot anyways, which would stop the script.
v3.3 – 01-07-2015
- Abort/Retry/Ignore option for downloads that fail. Abort stops the script (gracefully), retry will retry the download, ignore will ignore that file and continue running the rest of the script.
- Combined all the code that gets executed when the script exits, into a function. This allowed me to eliminate probably 100 lines of code, as well as getting more predictable output in the log file.
- code cleanup/standardizing of some function formatting
- URL decoding of downloaded file names. Some of the files, especially documents, are encoded URLs at some sites like Microsoft. Decoding them makes the file names more readable.
- PowerShell version is now logged when the script starts.
- Fixed logging anomaly where elapsed time wouldn’t show leading zeros – thanks to @pcgeek86 for some code examples
- download menu option 6 – Lync Online Admin components – includes the Lync Online PowerShell module and the Lync Online Sign-in Assistant
- Tweaked logging of downloaded files to account for those without version numbers
- fixed display anomaly for option 2 (edge server) where a prereq warning could be displayed in both the console and as a pop-up, both at the same time.
- Changed the script to utilize “#Requires -RunAsAdministrator” instead of a function that tries to restart the script in an elevated session. The latter was just a little two touchy, especially if UAC is enabled. The script will now error if it’s started from a non-elevated session.
- Had to back out some of the [IO.FileInfo] changes I made in 3.2 due to reported errors. Investigating further when time allows.
- -TargetFolder can now be used with -DownloadAll option
- File versions are logged of files that already exist if the script is checking to see if it needs to download the file.
- Fixed the -DownloadAll option to always download the chm file and the latest CU, regardless if they already exist locally
- Using a UNC (i.e. “\\server\share”) path for -TargetFolder is now supported for at least the -DownloadOnly option as well as the Front End and Office Web Apps server options (options 3 and 5, respectively). I’m still validating that it will work for other options. Thanks to @tjschleining and @energizedtech for help with the regex for validation. NOTE: I have not tested with hidden shares in a UNC path, such as “\\server\share$” or administrative shares, such as “\\server\c$”.
- Using a UNC path for -Win2012Source is now supported. Just like above, I haven’t tested with hidden/admin shares.
- -DownloadAll option now bypasses the Server Core test when the script starts
- Misc server config submenu created (option 50), and a bunch of the options were moved there & renumbered. This was necessary as there were so many options on the main menu that the menu would scroll partly off the screen.
- Added Server Config option 7 – Disable Server Manager on login (needs to be added to menu)
- Added Server Config option 8 – Upgrade to PowerShell v4 – this will work on 2012 servers (not 2012 R2) that have the original PowerShell 3.0 installed. This option requires a reboot at the end, and I **STRONGLY** recommend rebooting before attempting any other options.
- Fixed minor display anomaly due to a typo when the reboot prompt appeared
- Fixed a bug created by two functions that create/change/delete script related registry info. One would negatively affect the other and cause unintended results. This was evident in options that would reboot the server & auto start the script again. The script would throw an error when restarting.
- Misc Server Config > option 6 “Set fabric logging to circular” added. See Tom’s great article “Check your Lync server windows fabric log size with PowerShell“
- Disable Server Manager on logon option added in Misc Server Config > option 7
- Upgrade to PowerShell v4.0 option added in Misc Server Config > option 8. This is for Windows Server 2012 boxes that still have PowerShell v3.0 on them. Upgrading PowerShell both before and after Lync Server is installed is supported by Microsoft.
v3.2 – 12-22-2014
- Added option 34 (Lync Room System Admin Portal prerequisites) to the menu. It actually worked fine, the option just wasn’t visible in the menu.
- -DownloadOnly option. If specified when calling the script, will ONLY download necessary files for the option you choose. For example – when using that option, and choosing option 3 (Front End), the script will only download the Silverlight file, SQL Express, and SQL Management. Studio. No other configuration or changes are made to the server. This option is in case your Lync servers do not have Internet access. You can run the script on a machine that DOES have Internet access, download the files, then copy them to c:\_install on the desired server, and use the script normally.
- -DownloadAll option. Similar to -DownloadOnly, but this will download every file that the script can normally download. This includes all files for all options. Keep in mind that a full download set is in the neighborhood of 3.8GB of files.
- Removed download of Lync-Skype Connectivity Guide, as it looks like this is now just available as web pages, and no longer as a Word document download.
- Updated WireShark to 1.12.2. Still working on the full automated install and configuration of WireShark. Pretty sure it will work fine, but really need to test some more.
- Added Lync Online PowerShell module for SCOM Watcher Node (option 16 and download option 2) – thanks to Andrew Price for the heads up
- renumbered sub-menu options so that they all start at 1
- created security sub-menu (option 90), and moved option 29 (disable SSL 3.0) to it (now option 2)
- added option 1 in security sub-menu to disable SSL 2.0
- SSL 2.0 and 3.0 settings (enabled/disabled) are now logged when the script starts
- swapped some longer IF statements with some regex
- change in code due to OWAS image file no longer being a free download from Microsoft. If you need to run option 5, manually download the OWAS image file from your volume licensing site and place it in c:\_install. Option 5 will then work as intended. See http://www.wictorwilen.se/office-web-apps-server-will-only-be-available-for-volume-license-customers-shortly+SharePoint+MCA%2C+MCM+and+MVP%29 for more info.
- code cleanup as a result of DownloadOnly/DownloadAll options allows for easier management of the 40+ URLs the script uses for downloading files. This also prompted me to optimize the script a little more to handle URLs in the variables and how those files get installed. This means less work for me when a URL changes, which happens often with things like Silverlight, WireShark, etc.
- adjusted the warning verbiage when configuring Skype federation (option 28)
- All places where the server reboots are now forced – regardless of whether someone else is logged onto the server.
- Download option 1 (latest cumulative update) will now ALWAYS download the update, even if a local file already exists. This is to ensure that the latest CU is downloaded if an older version is already in the folder. This is the same behavior I use for the Lync documentation help file. I may try to do some version detection in the future, but this will have to suffice for now.
- OWAS SP1 notice (option 5) about size will now only appear if the file needs to be downloaded
- Dismounting OWAS ISO doesn’t close Windows Explorer window in 2012 R2 (like it does in Win 2012) – write-log added entry to display that it can be manually closed
- version info is now logged for files that are downloaded. I envision something around logging CU number in the future. We’ll see.
- changed the code that looks at the age of the script file to warn about updates to look at last modified vs. creation date. This likely won’t affect anyone other than me. But either way, should be better.
- Switched some [string] variables to [IO.FileInfo] just for best practices.
- A bunch of code added to “lock” the server so that multiple instances of the script cannot be run at the same time. Normally, I can’t imagine this ever taking place, but had an incident at a customer site lately that was literally a perfect storm where it happened. When the script runs now, it sets a registry key to one value, and when it stops, it sets the key to a different value. The script checks the value of that key when it first starts to ensure it’s not already running. If it is, it throws a warning and exits.
- Tweaked the status output during file transfers to be a little more descriptive, including listing filename. I’m still tweaking the code to display file size.
v3.1 – 10-24-2014
- option 84 (Lync 2013 Rollout and Adoption Success Kit (RASK) User Education and Training Resources)
- added Lync 2013 Rollout and Adoption Success Kit (RASK) Core Planning Resources
- added Lync 2013 Rollout and Adoption Success Kit (RASK) Resources
- fixed menu display anomaly for option 85
- option 34 (LRS Admin portal prereqs) added. As much as people are having issues getting it to work right, this option will at least get the prereqs installed.
- option 29 (Disable SSL 3) added. This is to lower your vulnerability footprint for POODLE attacks. I’m working on adding another whole menu (similar to the downloads menu) of just security options. Look for that in a future build. For more information, see Richard Brynteson’s posts POODLE and Lync Server 2013 and POODLE Testing Results for Lync
- Option 5 (OWAS) updated to do a date check due to the upcoming change for OWAS downloads. If the script is run after 11/23/2014, it will not attempt to download the image because the image won’t be available on the Microsoft Download Center any longer. See http://blogs.technet.com/b/office_sustained_engineering/archive/2014/10/22/web-apps-server-removal-from-download-center.aspx. The work around will be to manually download the image via your Volume Licensing portal and place it in the $TargetFolder (usually c:\_install), where the script will see it and continue as normal.
- fixed a bug and optimized the code around .Net versioning in option 5 (OWAS)
- fixed a bug in option 5 (OWAS) where you’d get prompted to install the English language pack even though it was already installed.
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
This is the changelog page for New-ExpiringCertificatesReminder.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.
v1.2 – 01-27-2014
- -noprofile switch added to install routine
- minor code tweaks per best practices
v1.0 – 09-11-2012
- Initial version
This is the changelog page for New-FirewallRule. 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.
v1.0 – 09-14-2012
- Initial version
This is the changelog page for Grant-CsPolicyByADGroup.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.
v1.6 – 09-23-2014
- fixed a syntax issue that would throw an error. Thanks to John for alerting me.
v1.5 – 02-08-2014
- swapped in new Set-ModuleStatus function
- cleanup of param block per best practices
- cleanup of functions per best practices
- replaced aliases with correct full cmdlet name per best practice
v1.4 – 01-27-2014
- Fixed PowerShell v2.0 compatibility
- minor code cleanup
- -noprofile switch added to install routine
v1.2 – 10-16-2012
- Better handling of nested user groups and members
v1.1 – 09-19-2012
- Added support for nested AD groups
- Added variable in param() block to define type of policy to apply to users
- Optimization of Set-ModuleStatus, Install, and Remove-ScriptVariables functions
v1.0 – 09-10-2012
- Original version
This is the changelog page for New-CsFirmware.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.
v1.9 – 03-31-2015
- minor code cleanup per best practices
- fixed an issue where an error would get thrown when the script was getting a list of update files. Thanks to Ben for pointing it out.
v1.8 – 02-08-2015
- -PoolFqdn option to target a single pool
- updated Write-Log to v2.7
- updated Set-ModuleStatus to v1.5
- updated New-FileDownload to v1.2
- updated Get-Folder to v1.1
- updated Test-IsProxyEnabled to v1.1
- fixed logging issue where file name and pool FQDN were not correctly logged
v1.7 – 05-20-2014
- New-Download option will now download all firmware for the4LPE families:
- Polycom CX700 and LG-Nortel IP Phone 8540
- Polycom CX500, Polycom CX600 and Polycom CX3000
- Aastra 6721ip and Aastra 6725ip
- HP 4110 and HP 4120
then extract them, and then import them automatically
v1.6 – 02-08-2014
- bug fix: Tweaked to only target Lync pools and not ALL pools (which could contain OCS 2007 R2 pools during coexistence, and OCS pools don’t support firmware files)
- Removed main code from function to streamline things.
- Cleaned up parameter code per best practices
- cleaned up comment code per best practices
- swaped in new version of Set-ModuleStatus function
v1.5 – 09-09-2013
- Minor code tweaks
- Support added for Snom firmware files (Thanks, @matthewlandis)
- Support added for new Polycom VVX firmware file (Thanks, @jdscher)
v1.4 – 05-10-2013
- Minor code tweaks
v1.3 – 10-17-2012
- Tweaked issue with transcript code that was causing an error.
- Minor code tweaks.
v1.2 – 08-17-2012
- Fixed the bug that caused script to fail when run from ISE
v1.1 – 07-19-2012
- Bug fixes.
- Added some extra verbose logging
v1.0 – 07-03-2012
- Original version
This is the changelog page for Get-CsVoiceCalls.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.
v1.4 – 06-12-2012
- Added some additional code to handle named SQL instances better. Still needs some testing in more environments.
v1.2 – 06-05-2012
- Original version
This is the changelog page for Get-CsConnections.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.1 – 04-07-2016
- added -SkipUpdateCheck to skip update check
v3.0 – 09-09-2015
- clarified some examples in the help section
- added detection for Skype for Business Server 2015
v2.9 – 10-28-2014
- Fixed an issue where PowerShell v2.0 machines would choke on one line. Thanks to Thierry for pointing it out.
- New code-signing certificate to replace expired cert
v2.8 – 06-10-2014
- Clarified ShowTotal output per Nate’s comment
- Fixed an issue where LRS clients would show a leading space for the agent string
- changed FE server info to be lower case to that it’s consistent
- the -pool parameter is now -poolfqdn to align with other scripts and cmdlets
- fine tuned some of the code used when specifying -SipAddress
v2.7 – 05-24-2014
- fixed check for updates dialog border
- defined OverallRecords as an array to avoid an issue. Thanks to Tristan for that info.
- fixed verbose output not showing server names. Thanks to Greig for pointing it out.
v2.6 – 02-08-2014
- tweaked the MaxEndpointsPerUser section to always use the global configuration. This only matters in environments where multiple configurations exist (Get-CsRegistrarConfiguration). Thanks to Matt for pointing this out.
- swaped in new version of Set-ModuleStatus function
- cleanup of param block per best practices
- cleanup of comment help per best practices
- swaped in new verion of Test-ScriptUpdates
v2.5 – 11-26-2013
- tweaked SQL query for case insensitivity per Jean-Luc
- comment help updated to include info on Windows firewall config
- tweaked code when getting info for a single user to fix missing data for pool connection order
v2.4 – 09-13-2013
- Fixed output for unique users/clients
- Now validates if UserHighConnectionFlag is specified, and does not exceed MaxEndPointsPerUser
v2.3 – 08-01-2013
- intro code for script update check
- better pool version detection. When using the -pool option, you no longer need to specify -Is2013 if it’s a 2013 pool
- Added code to restart script in an elevated session if the current session isn’t elevated (previously the script just threw an error and exited)
v2.2 – 05-10-2013
- Added support for Lync Server 2013 by using the -Is2013 switch. If I can find a better way of automatically detecting the version, I’ll incorporate that in a later build.
- Some code optimization
- Bug fix for an issue where the names of servers in a pool wouldn’t display if the script was run in PowerShell v3.
v2.1 – 12-13-2012
- Minor formatting tweaks for better handling long client names, such as the Lync RT client.
- Minor bug fixes
v2.0 – 10.16.2012
- Added -IncludeHighUsers option. Similar to -IncludeUsers, but only shows those users who meet the UserHighConnectionFlag value (shown in white), or exceeds it (shown in red).
- Added -ShowTotal option. When finished, shows statistics for the org, including total number of Lync enabled users, the total number of voice enabled users, and the percentage of enabled users that are currently connected.
- Updated the code the assembles FQDNs when just a pool or server netbios name are specified.
- If -SipAddress option is used, additional information showing the preferred connection order for the user is now also included. This adds the functionality of one liners: Finding out which Lync pool servers a user is associated with, and the preferred connection order.
v1.9 – 09-21-2012
- Finally resolved the issue where some front end servers would have a different number for PrimaryRegistrarClusterId in SQL Express than others, causing some servers to not return data (and not throw an error). Special thanks to Dave Howe @ Microsoft for helping me identify a work around, and also to Bart, a SQL Engineer at a client site who helped me tweak the related SQL query.
- A little code optimization
- -Server option added that now allows you to target a specific server instead of an entire pool.
- This version is code signed. You no longer are required to have a PowerShell Execution Policy of unrestricted or RemoteSigned. However, the script cannot be edited at all, or the code signature breaks.
- -sipaddr now supports specifying just the left part of the SIP address, but only in organizations with ONE SIP domain. For example, -sipaddr bill.gates instead of -sipaddr email@example.com.
- -server supports specifying the netbios domain. The script will “guess” at the FQDN by using the domain name of the machine the script is running on and appending it to the netbios name.
v1.8 – 09-14-2012
- Tons of formatting changes, mostly subtle
- Server names in the pool list are sorted
- Server names in the ‘Frontend Server’ list are now sorted
- Connections are now sorted by client
- Added -ShowFullClient switch to show extended client info.
- If -pool is not specified, and only one registrar pool exists, the script will automatically use that pool.
- Some additional verbose output added for troubleshooting
v1.7 – 09-07-2012
- Minor display sorting cleanup
- Streamlined some code
- Removed -IncludeUsers from automatically being set when using -ClientVersion
v1.6 – 07-02-2012
- Added feature to show just specific client versions and the connected users with that client
v1.4 – 04-19-2012
- cleaned up some of the param() block and added some validation
- streamlined some of the code
- tweaked the displayed results a little to better handle longer agent strings
v1.3 – 12-27-2011
- tweaked the formatting a little to account for longer agent strings due to mobile clients
- ignore the RtcApplication-[guid] account when calculating users and displaying userlist
- added error if pool doesn’t have any servers
- added UserHighConnectionFlag in parameter block to support pipeline entry
v1.1 – 08-09-2011
- added comment based help
- added option to display user list
- updated formatting
- added code so it will run in a normal PowerShell session
v1.0 – 07-01-2011
- original version
This is the changelog page for Set-WindowsEmailAddress.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.
v1.2 – 01-27-2014
- Updated Set-ModuleStatus function
- cmdlet binding
- testing for ISE to avoid errors with Start-Transcript
v1.1 – 10-1-2011
- code cleanup
- variable cleanup
- replaced some code with my normal functions
- expanded comment based help
- account for zero results
v1.0 – 06-12-2011
- Original version