Archive

Posts Tagged ‘Installation’

Function: Set-TimeZone – Configure Time Zone via PowerShell

March 4, 2013 1 comment

Powershell_logo-137x137It’s easy to just double-click on the time in the system tray and set the time and time zone when building a new server. You may even have a GPO that does this for you. That’s all fine and dandy. But GPOs don’t work for member servers, and if you build a lot of servers, like I do, it’s a repetitive task – something perfectly suited for PowerShell.

With this function, we do nothing more than call tzutil.exe with the timezone name. Nothing fancy. I added some validation to make sure that the timezone specified is truly one of the 100 valid time zones that tzutile.exe should recognize and accept.

So, now, in your server provisioning script, merely call the function, Set-TimeZone, with the desired timezone. For example:

Set-TimeZone "Pacific Standard Time"

The script defaults to “Eastern Standard Time” if you don’t supply a timezone. That’s it. There is no screen output for this function. Here’s the function:

function Set-TimeZone {
  [CmdletBinding(SupportsShouldProcess = $True)]
  param( 
    [Parameter(ValueFromPipeline = $False, ValueFromPipelineByPropertyName = $True, Mandatory = $False)]
    [ValidateSet("Dateline Standard Time","UTC-11","Hawaiian Standard Time","Alaskan Standard Time","Pacific Standard Time (Mexico)","Pacific Standard Time","US Mountain Standard Time","Mountain Standard Time (Mexico)","Mountain Standard Time","Central America Standard Time","Central Standard Time","Central Standard Time (Mexico)","Canada Central Standard Time","SA Pacific Standard Time","Eastern Standard Time","US Eastern Standard Time","Venezuela Standard Time","Paraguay Standard Time","Atlantic Standard Time","Central Brazilian Standard Time","SA Western Standard Time","Pacific SA Standard Time","Newfoundland Standard Time","E. South America Standard Time","Argentina Standard Time","SA Eastern Standard Time","Greenland Standard Time","Montevideo Standard Time","Bahia Standard Time","UTC-02","Mid-Atlantic Standard Time","Azores Standard Time","Cape Verde Standard Time","Morocco Standard Time","UTC","GMT Standard Time","Greenwich Standard Time","W. Europe Standard Time","Central Europe Standard Time","Romance Standard Time","Central European Standard Time","W. Central Africa Standard Time","Namibia Standard Time","Jordan Standard Time","GTB Standard Time","Middle East Standard Time","Egypt Standard Time","Syria Standard Time","E. Europe Standard Time","South Africa Standard Time","FLE Standard Time","Turkey Standard Time","Israel Standard Time","Arabic Standard Time","Kaliningrad Standard Time","Arab Standard Time","E. Africa Standard Time","Iran Standard Time","Arabian Standard Time","Azerbaijan Standard Time","Russian Standard Time","Mauritius Standard Time","Georgian Standard Time","Caucasus Standard Time","Afghanistan Standard Time","Pakistan Standard Time","West Asia Standard Time","India Standard Time","Sri Lanka Standard Time","Nepal Standard Time","Central Asia Standard Time","Bangladesh Standard Time","Ekaterinburg Standard Time","Myanmar Standard Time","SE Asia Standard Time","N. Central Asia Standard Time","China Standard Time","North Asia Standard Time","Singapore Standard Time","W. Australia Standard Time","Taipei Standard Time","Ulaanbaatar Standard Time","North Asia East Standard Time","Tokyo Standard Time","Korea Standard Time","Cen. Australia Standard Time","AUS Central Standard Time","E. Australia Standard Time","AUS Eastern Standard Time","West Pacific Standard Time","Tasmania Standard Time","Yakutsk Standard Time","Central Pacific Standard Time","Vladivostok Standard Time","New Zealand Standard Time","UTC+12","Fiji Standard Time","Magadan Standard Time","Tonga Standard Time","Samoa Standard Time")]
    [ValidateNotNullOrEmpty()]
    [string]$TimeZone = "Eastern Standard Time"
  ) 

  $process = New-Object System.Diagnostics.Process 
  $process.StartInfo.WindowStyle = "Hidden" 
  $process.StartInfo.FileName = "tzutil.exe" 
  $process.StartInfo.Arguments = "/s `"$TimeZone`"" 
  $process.Start() | Out-Null 
} # end function Set-TimeZone

Script: Set-Cs2013Features.ps1 – Easily Install Prerequisites and Tools for Microsoft Lync Server 2013

February 8, 2013 91 comments

Lync 2013 logo 128x128Description

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, Front End, Office Web Apps, Persistent Chat, and Mediation server prerequisites, and more tools. If you have suggestions, please feel free to comment below.

In the event that the server needs to be rebooted before prereqs can continue, it will automatically restart the script and continue after you reboot and login again.

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 SP2 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 SP2 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 the firewall is enabled) 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 prompts to install the English language pack, followed by the re-released SP1 update. Almost everything needed to deploy an Office Web Apps server. This option also verifies that Windows Update settings are NOT set to automatic, as that is not recommended.

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

17. Custom PortQryUI. PortQryUI is installed, along with a custom config file that adds Lync related options.

18. Install Microsoft Message Analyzer (formerly NetMon)

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

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.

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.

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 (normally just picking all of the default options).

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!

33. Set server power plan to “High Performance”. See http://www.ehloworld.com/2558

36. Create Lync file share on local computer. Creates a file share on the local computer. That information then should get added to Topology Builder.

38. Create Lync file share on local computer. This creates a file share on the local computer called “LyncShare”, and assigns the basic NTFS and share rights. This can then be added to the Lync Topology Builder.

40. Desktop shortcuts menu. This is basically an enhanced menu driven version of Create a Shutdown/Restart/Logoff Windows 8 Tile for the Start menu (PowerShell) that puts easy to reach tiles on the Start screen. The available tiles are:

41. Logoff
42. Restart
43. Shutdown
44. Windows Update
45 Lync Server Management Shell
46. Lync Server Deployment Wizard
47 Lync Server Control Panel
48. Exchange UM Integration Utility (OcsUmUtil)
49. Snooper
50. OCSLogger Logging Tool
51. Lync Server Topology Builder
52. Certificate Management (local machine)
53. Active Directory Users and Computers (ADUC)

60. Taskbar shortcuts menu. These options create shortcuts on the taskbar for commonly used tools.

 61. Lync Server Management Shell
62. Lync Server Deployment Wizard
63. Lync Server Control panel
64. Exchange UM Integration Utility (OcsUmUtil)
65. Snooper
66. OCSLogger Logging Tool
67. Lync Server Topology Builder
68. REMOVE shortcut for PowerShell
69. Certificate Management (local machine)
70. Active Directory Users and Computers (ADUC)

80. Downloads only menu. This menu shows options for download (only) of some key Lync related products.

81. Download latest Lync Server 2013 Cumulative Update
82. Lync Server 2013 Watcher Node
83. Lync Server 2013 Management Pack & Documentation
84. Lync 2013 Rollout and Adoption Success Kit (RASK)

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). This log file should be included when reporting any bugs.

Syntax

C:\Set-Cs2013Features.ps1 [[-TargetFolder] ] [[-Win2012Source] ] [[-SQLPath]] [-WhatIf] [-Confirm]

Examples

Set-Cs2013Features.ps1

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

Installation

WARNING!

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, this script 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.

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.

Frequently Asked Questions

Question: Why doesn’t this script support Windows Server 2008 R2?

Answer: I get asked this all the time. There are several reasons. The first is that out of the box, Server 2008 R2 has PowerShell 2.0 installed, and this script is written in PowerShell 3.0. Requiring you to upgrade to PowerShell 3.0 first, before running a script that installs prerequisites, seems counter-intuitive. And converting the script to just use PowerShell 2.0 is taking a step backwards, especially considering that the current version of PowerShell is 4.0, and even as this is written, 5.0 is in preview.

Next is sheer time. I test changes I make. And then I test them again. And then I choose different options and combinations and test them. Testing on just Server 2012 and Server 2012 is exhausting. Adding Server 2008 R2 would mean even more testing, plus I’d have to add those resources in my already overtaxed test labs. That would slow down my ability to add new features and test fixes.

Third is that Server 2008 R2 is two versions back. Get with the times already!


Question: Can you add feature x?

Answer: I LOVE getting feature requests. Seriously! Best method to suggest features is to send me an email. My email address is in the comment section at the top of every script I release. Please be detailed in what you’d like to see, as well as any scenarios you’d use the option (so I can try to duplicate testing).


Question: How do I submit bug reports?

Answer: Email is best. Grab my email address from the comment section at the top of the script. Please be VERY detailed. Please include screen shots if possible, and ALWAYS include the log file. If you’re not using the latest version of the script, please download it and see if you can duplicate the problem before reporting it.


Question: What if my server doesn’t have Internet access?

Answer: Fear not. Download the required files from another machine and place them in the TargetFolder, which is c:\_install by default. The script looks to see if the file is available locally before attempting to download.

Download

v2.8 – 08-13-2014 – Set-Cs2013Features.v2.8.zip

v2.7 – 06-26-2014 – Set-Cs2013Features.v2.7.zip

v2.6 – 06-10-2014 – Set-Cs2013Features.v2.6.zip

v2.5 – 05-24-2014 – Set-Cs2013Features.v2.5.zip

v2.4 – 04-29-2014 – Set-Cs2013Features.v2.4.zip

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

Changelog

See the changelog for information on what’s changed/included in each version.

Retrieving “Missing” Start Menu Items for Lync Server 2010

August 11, 2012 Leave a comment

When you install your first Lync Server in a 2010 environment, you see many options in the Start Menu such as the Lync Server Control Panel, Lync Server Management Shell, Topology Builder, etc.

Start Menu shortcuts on first server installed

Start Menu shortcuts on first server installed

However, when you install subsequent servers in the same environment, some of those options, like the Control Panel and the Topology Builder, are not listed.

Start Menu shortcuts on subsequent servers

Start Menu shortcuts on subsequent servers

That’s all fine and dandy if you’re always going to use the first server to perform those tasks. But what if that server is not available?

I’m completely OCD, and I like to have everything match perfectly. So – here’s how to get all of the options on each server. Open up Windows Explorer and go to the installation files for Lync. Browse to \Setup\amd64\Setup and run admintools.msi. Click ‘Yes’ on the UAC prompt.

Administrative Setup Tools UAC screen

Administrative Setup Tools UAC screen

At the Welcome screen, as shown below, click Next.

Admininstrative Tools Setup welcome screen

Administrative Tools Setup welcome screen

Carefully read the End-User License Agreement. If you agree, click the check box, then click Next.

Administrative Tools Setup license screen

Administrative Tools Setup license screen

At the destination folder screen, it should default to your Lync installation folder, which, by default, is c:\Program Files\Microsoft Lync Server 2010\. Click Next.

Administrative Tools Setup destination folder

Administrative Tools Setup destination folder

At the ready screen, click Install.

Administrative Tools Setup ready screen

Administrative Tools Setup ready screen

At the Completed screen, click Finish.

Administrative Tools Setup completed screen

Administrative Tools Setup completed screen

And now we have the shortcut items. Our OCD now settles down, and we can use these tools on each server.

April 2012 Technical Rollup: Unified Communications

News

Premier

OpsVault — Operate and Optimize IT http://www.opsvault.com

Microsoft Premier Support UK – Site Home – TechNet Blogs http://blogs.technet.com/b/mspremuk/

Antigen & Forefront

Forefront Team Blog – Site Home – TechNet Blogs http://blogs.technet.com/b/forefront

Forefront Server Security Support Blog – Site Home – TechNet Blogs http://blogs.technet.com/b/fssnerds

Exchange

Exchange Team Blog – Site Home – TechNet Blogs http://blogs.technet.com/b/exchange/

MCS UK Unified Communications Blog – Site Home – TechNet Blogs http://blogs.technet.com/b/msukucc

  1. Demystifying the CAS Array Object – Part 2 http://blogs.technet.com/b/exchange/archive/2012/03/28/demystifying-the-cas-array-object-part-2.aspx
  2. Demystifying the CAS Array Object – Part 1 http://blogs.technet.com/b/exchange/archive/2012/03/23/demystifying-the-cas-array-object-part-1.aspx
  3. Exchange Server Deployment Assistant Update for Exchange 2010 SP2 and Office 365 Hybrid Deployments http://blogs.technet.com/b/exchange/archive/2012/03/21/exchange-server-deployment-assistant-update-for-exchange-2010-sp2-and-office-365-hybrid-deployments.aspx
  4. Check out Microsoft Script Explorer for Windows PowerShell (pre-release) http://blogs.technet.com/b/exchange/archive/2012/03/14/check-out-microsoft-script-explorer-for-windows-powershell-pre-release.aspx
  5. Exchange Client Network Bandwidth Calculator Beta 2 http://blogs.technet.com/b/exchange/archive/2012/03/09/exchange-client-network-bandwidth-calculator-beta2.aspx
  6. Introducing: Log Parser Studio http://blogs.technet.com/b/exchange/archive/2012/03/07/introducing-log-parser-studio.aspx
  7. MEC is Back! http://blogs.technet.com/b/exchange/archive/2012/03/06/mec-is-back.aspx

Lync

NextHop – Site Home – TechNet Blogs http://blogs.technet.com/b/nexthop/

DrRez: Microsoft Lync Server Technical Reference Hub http://blogs.technet.com/b/drrez/

  1. Lync Server 2010 Updates Now Available: March 2012 http://blogs.technet.com/b/nexthop/archive/2012/03/28/lync-2010-updates-now-available-march-2012.aspx
  2. Lync Server Documentation Update: March 2012 http://blogs.technet.com/b/nexthop/archive/2012/03/15/lync-server-documentation-update-march-2012.aspx
  3. Lync Wikis—Start a Wild and Wooly Conversation http://blogs.technet.com/b/nexthop/archive/2012/03/15/lync-wikis-start-a-wild-and-wooly-conversation.aspx
  4. Deploying and Troubleshooting Lync Server 2010 MSPL Applications http://blogs.technet.com/b/nexthop/archive/2012/03/14/deploying-and-troubleshooting-lync-server-2010-mspl-applications.aspx
  5. Lync 2010 Training Release Updates http://blogs.technet.com/b/nexthop/archive/2012/03/09/lync-2010-training-release-update.aspx

Outlook

Outlook Blog http://blogs.msdn.com/b/outlook/default.aspx

Other

The Master Blog – Site Home – TechNet Blogs http://blogs.technet.com/b/themasterblog

Documents

Exchange

Exchange Server 2010 SP2 Help
This download contains a standalone version of Microsoft Exchange Server 2010 SP2 Help. http://www.microsoft.com/download/en/details.aspx?id=28207

Microsoft Exchange Server 2010 Install Guide Templates
You can use these templates as a starting point for formally documenting your organization’s server build procedures for servers that will have Microsoft Exchange Server 2010 server roles installed on them. http://www.microsoft.com/download/en/details.aspx?id=17206

Best Practices for Virtualizing Exchange Server 2010 with Windows Server® 2008 R2 Hyper V™
The purpose of this paper is to provide guidance and best practices for deploying Microsoft® Exchange Server 2010 in a virtualized environment with Windows Server® 2008 R2 Hyper V™ technology. This paper has been carefully composed to be relevant to organizations of any size. http://www.microsoft.com/download/en/details.aspx?id=2428

Migrate from Exchange Public Folders to Microsoft Office 365
This document outlines these considerations, discusses the most common public folder scenarios and how they are represented in Office 365 services. It also provides the information you need to decide whether Office 365 is a good match for you based on your current public folder usage. http://www.microsoft.com/download/en/details.aspx?id=27582

Lync

Unified Communications Phones and Peripherals Datasheets
These datasheets list the phones and peripheral devices that are qualified to display the “Optimized for Microsoft Lync” logo. http://www.microsoft.com/download/en/details.aspx?id=16857

Microsoft Lync Server 2010 Protocol Workloads Poster
This poster shows each workload in Microsoft Lync Server 2010 communications software, describing relationships, dependencies, flow of information, and certificate requirements. Version 5.11 corrects minor errors. http://www.microsoft.com/download/en/details.aspx?id=6797

Microsoft Lync Server 2010 Device Management and Troubleshooting Guide
The purpose of the Microsoft Lync Server 2010 Device Management and Troubleshooting Guide is to provide guidance on how to manage and update devices. It is also intended to answer frequently asked questions. This document identifies supported topologies, configurations, and scenarios described in detail in the Lync Server device deployment and planning documentation. http://www.microsoft.com/download/en/details.aspx?id=16277

Microsoft Lync Server 2010 Mobility Guide
This document guides you through the process of deploying the Microsoft Lync Server 2010 Mobility Service and the Microsoft Lync Server 2010 Autodiscover Service. http://www.microsoft.com/download/en/details.aspx?id=28355

Troubleshooting Microsoft Lync Server 2010 Clients: Help Desk Resource
This resource is for first-level help desk agents who support Microsoft Lync Server 2010 clients. Note: The .zip file contains both the print documentation and the Help file. http://www.microsoft.com/download/en/details.aspx?id=7373

Microsoft Lync Server 2010 Reference: Call Data Recording and Quality of Experience Database Schema
This document describes the call detail recording (CDR) and the Quality of Experience (QoE) databases schemas in Microsoft Lync Server 2010. http://www.microsoft.com/download/en/details.aspx?id=18099

Microsoft Lync Server 2010 Reference: Group Chat Database Schema
This document describes the Group Chat database schema in Microsoft Lync Server 2010. http://www.microsoft.com/download/en/details.aspx?id=21632

Microsoft Lync Server 2010 Security Guide
The Security Guide provides guidelines for assessing and managing security risks to your Lync Server 2010 deployment. http://www.microsoft.com/download/en/details.aspx?id=2729

Migrating from Office Communications Server 2007 R2 to Lync Server 2010
This document provides guidance from migration from Office Communications Server 2007 R2 to Microsoft Lync Server 2010. http://www.microsoft.com/download/en/details.aspx?id=9109

Migrating from Office Communications Server 2007 to Lync Server 2010
This document provides guidance from migration from Office Communications Server 2007 to Microsoft Lync Server 2010. http://www.microsoft.com/download/en/details.aspx?id=7327

Microsoft Lync Server 2010 Supportability Guide
This guide provides a central, high-level reference for supported server topologies and configurations and supported client configurations. It is also intended to answer frequently asked questions. This document identifies supported topologies, configurations, and scenarios described in detail in the Lync Server deployment and planning documentation. http://www.microsoft.com/download/en/details.aspx?id=13148

Enabling Quality of Service with Microsoft Lync Server 2010
If your Windows Server network supports Quality of Service (QoS) management, you can take advantage of this functionality to optimize media traffic in your Microsoft Lync Server 2010 deployment. This guide shows you how. http://www.microsoft.com/download/en/details.aspx?id=12633

Microsoft Lync Server 2010 Monitoring Deployment Guide
This document guides you through the process of deploying Lync Server 2010 Monitoring Server. http://www.microsoft.com/download/en/details.aspx?id=8207

Microsoft Lync Server 2010 Standard Edition Deployment Guide
This document guides you through the process of deploying Lync Server 2010 Standard Edition and configuring dial-in conferencing. http://www.microsoft.com/download/en/details.aspx?id=5317

Microsoft Lync Server 2010 Enterprise Voice Deployment Guide
This download contains two documents: Deploying Enterprise Voice at Central sites and Deploying Branch Sites http://www.microsoft.com/download/en/details.aspx?id=4816

Deploying Lync Server 2010 in a Multiple Forest Environment
This document explains how to deploy Lync Server 2010 in a multiple forest environment. http://www.microsoft.com/download/en/details.aspx?id=11300

Microsoft Lync Server 2010: Deploying Lync Server 2010 Enterprise Edition by Using the Planning Tool
This document describes the how to deploy Lync Server 2010 Enterprise Edition by using the Planning Tool. http://www.microsoft.com/download/en/details.aspx?id=8692

Microsoft Lync Server 2010 Group Chat Deployment Guide
This document guides you through the process of migrating and deploying Lync Server 2010 Group Chat Server and the related components that are required to let organizations set up searchable, topic-based chat rooms that persist over time, allowing geographically distributed teams to better collaborate with one another while preserving organizational knowledge. http://www.microsoft.com/download/en/details.aspx?id=9735

Microsoft Lync Server 2010 Remote Call Control Deployment Guide
This document describes the how to deploy remote call control in a Lync Server 2010 deployment. http://www.microsoft.com/download/en/details.aspx?id=16598

Microsoft Lync Server 2010 Edge Server Deployment Guide
This document guides you through the process of deploying Lync Server 2010 edge servers and Directors. http://www.microsoft.com/download/en/details.aspx?id=11379

Microsoft Lync Server 2010 Response Group Deployment Guide
This download guides you through the process of configuring the Response Group feature for Enterprise Voice. http://www.microsoft.com/download/en/details.aspx?id=6233

Microsoft Lync Server 2010 Active Directory Guide
This document guides you through the process of preparing Active Directory for Microsoft Lync Server 2010 and includes the Active Directory schema reference. http://www.microsoft.com/download/en/details.aspx?id=9448

Backing Up and Restoring Lync Server 2010
This document describes a methodology for backing up and restoring the data that is required for full recovery of Microsoft Lync Server 2010 services. http://www.microsoft.com/download/en/details.aspx?id=3364

Microsoft Lync Server 2010 Enterprise Edition Deployment Guide
This document guides you through the process of deploying Lync Server 2010 Enterprise Edition and configuring dial-in conferencing for Lync Server 2010. http://www.microsoft.com/download/en/details.aspx?id=9596

Microsoft Lync Server 2010 Client and Device Deployment Guide
This download guides you through the process of deploying client software and devices for Lync 2010. http://www.microsoft.com/download/en/details.aspx?id=15985

Microsoft Lync Server 2010 Group Chat Administration Guide
This document guides you through the process of administering Lync Server 2010 Group Chat Server and the related components that are required to let organizations set up searchable, topic-based chat rooms that persist over time, allowing geographically distributed teams to better collaborate with one another while preserving organizational knowledge. http://www.microsoft.com/download/en/details.aspx?id=6126

Microsoft Lync Server 2010 Announcement Deployment Guide
This download guides you through the process of configuring the Announcement call management feature for Enterprise Voice. http://www.microsoft.com/download/en/details.aspx?id=9823

Microsoft Lync Server 2010 Documentation Help File
This download contains a compiled help file (chm) of all the available Lync Server 2010 IT professional documentation on the Technical Library. http://www.microsoft.com/download/en/details.aspx?id=23888

Microsoft Lync Server 2010 Archiving Deployment Guide
The purpose of the Microsoft Lync Server 2010 Archiving Deployment Guide is to guide you through the process of deploying Lync Server 2010 Archiving Server and the related components that are required to support archiving of instant messaging and web conferencing (meeting) content. http://www.microsoft.com/download/en/details.aspx?id=4711

Microsoft Lync Server 2010 Administration Guide & Windows PowerShell Supplement
The Lync Server Administration Guide and the Windows PowerShell Supplement contain procedures and guidance for administering a Lync Server 2010 deployment. http://www.microsoft.com/download/en/details.aspx?id=13161

Uninstalling Microsoft Lync Server 2010 and Removing Server Roles
To maintain any system, you need to modify the deployment over time. An important part of maintenance is the retiring or decommissioning of existing components that you replace with different or newer components. “Uninstalling Lync Server 2010 and Removing Server Roles” includes procedures for removing server roles and decommissioning a deployment. http://www.microsoft.com/download/en/details.aspx?id=18692

Microsoft Lync Server 2010: Using Monitoring Server Reports
This document describes the how to use Monitoring Server Reports in a Lync Server 2010 deployment. http://www.microsoft.com/download/en/details.aspx?id=890

Live Meeting-To-Lync Transition Resources
Resources included in this download package are designed to support your organization’s Live Meeting Service to Lync (Server or Online) transition planning. This download will be updated with additional resources as available. http://www.microsoft.com/download/en/details.aspx?id=26494

Microsoft Lync 2010 Conferencing and Collaboration Training
Learn how to schedule, join, and manage online meetings with Microsoft Lync 2010. http://www.microsoft.com/download/en/details.aspx?id=7606

IM an Expert for Microsoft Lync Server 2010
IM an Expert is an instant messaging question and answer service that you can set up within your organization. With the IM an Expert service, you can use Microsoft Lync or the IM an Expert Welcome page to submit a question to the service. The IM an Expert service will locate an expert for you within your company and initiate an IM session between you and the expert who can answer your question. http://www.microsoft.com/download/en/details.aspx?id=8475

A Microsoft Lync Server 2010 Multitenant Pack for Partner Hosting Reference Architecture Case Study
Describes a case study of a real world implementation of a reference architecture for the Microsoft Lync Server 2010 Multitenant Pack for Partner Hosting. http://www.microsoft.com/download/en/details.aspx?id=29044

Microsoft Lync 2010 Phone Edition for Polycom CX500, Polycom CX600 and Polycom CX3000
Microsoft® Lync™ 2010 Phone Edition for Polycom® CX500, Polycom® CX600 and Polycom® CX3000 is the first generation of software designed specifically for the phones from Polycom to interoperate with Microsoft® Lync™ Server 2010. Lync Phone Edition provides traditional and advanced telephony features, integrated security, manageability and much more. http://www.microsoft.com/download/en/details.aspx?id=23866

Microsoft Lync 2010 Phone Edition for Aastra 6721ip and Aastra 6725ip
Microsoft® Lync™ 2010 Phone Edition for Aastra 6721ip and Aastra 6725ip is the first generation of software designed specifically for the phones from Aastra to interoperate with Microsoft® Lync™ Server 2010. Lync Phone Edition provides traditional and advanced telephony features, integrated security, manageability and much more. http://www.microsoft.com/download/en/details.aspx?id=18390

Microsoft Lync 2010 Phone Edition for HP 4110 and HP 4120
Microsoft® Lync™ 2010 Phone Edition for HP 4110 and HP 4120 is the first generation of software designed specifically for the phones from HP to interoperate with Microsoft® Lync™ Server 2010. Lync Phone Edition provides traditional and advanced telephony features, integrated security, manageability and much more. http://www.microsoft.com/download/en/details.aspx?id=28158

Microsoft Lync 2010 Phone Edition for Polycom CX700 and LG-Nortel IP Phone 8540
Microsoft® Lync™ 2010 Phone Edition for Polycom® CX700 and LG-Nortel IP Phone 8540 is the next generation of software designed for the phones from Polycom and LG-Nortel to interoperate with Microsoft® Lync™ Server 2010. Lync Phone Edition provides traditional and advanced telephony features, integrated security, manageability and much more. http://www.microsoft.com/download/en/details.aspx?id=21644

Microsoft Lync Server 2010 Multitenant Pack for Partner Hosting Deployment Guide
The Microsoft Lync Server 2010 Multitenant Pack for Partner Hosting is an extension of Microsoft Lync Server 2010 software that is designed to allow service providers and system integrators to customize a Lync Server 2010 deployment and offer it as a service to their customers. This guide describes how to deploy and configure a basic architecture. http://www.microsoft.com/download/en/details.aspx?id=28587

Reference Architecture for the Microsoft Lync Server 2010 Multitenant Pack for Partner Hosting
Describes a reference architecture for the Microsoft Lync Server 2010 Multitenant Pack for Partner Hosting. http://www.microsoft.com/download/en/details.aspx?id=29045

Downloads

  1. Lync Lync Server 2010 Hotfix KB 2493736 This download includes all available updates for Lync Server 2010. http://www.microsoft.com/download/en/details.aspx?id=11551
  2. Lync 2010 Hotfix KB 2684739 (64 bit) This download includes all available updates for Lync 2010. http://www.microsoft.com/download/en/details.aspx?id=14490
  3. Lync 2010 Hotfix KB 2684739 (32 bit) This download includes all available updates for Lync 2010. http://www.microsoft.com/download/en/details.aspx?id=25055
  4. Microsoft Lync 2010 Training Download Package This zipped folder contains all of the available training and user education resources for Microsoft Lync 2010. The included Lync Training Plans workbook helps you choose the resources that will work best for your users. http://www.microsoft.com/download/en/details.aspx?id=9642
  5. IM an Expert for Microsoft Lync Server 2010 Documentation Version 1.5 This download provides documentation for the IM an Expert for Microsoft Lync Server 2010 service http://www.microsoft.com/download/en/details.aspx?id=16104

Events/Webcasts

Core presents An Introduction to the Microsoft Cloud (Office 365 and Windows Intune)

Starts: 18 April 2012 09:30
Ends: 18 April 2012 12:45
Time zone: (GMT) GMT, London
Welcome Time: 09:00

Cloud technology—it’s all you hear about right now! But for many, it can be confusing. Core can help you make sense of it all. Join us at our Introduction to the Microsoft Cloud seminar to learn how your organisation can take advantage of Microsoft’s latest cloud offerings to transform your IT infrastructure and drive your business forward! Reduce your capital expenditure and save money by paying only for the computing power you need! https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032502492&culture=en-GB

New KBs

Antigen & Forefront Microsoft Forefront Security for Exchange Server: Some default deletion messages in Forefront Security for Exchange Server may mislead a user or an administrator to assume that an error occurred or that a virus was found http://support.microsoft.com/kb/961385

Exchange

Microsoft Exchange Server 2003 Enterprise Edition

  1. Exchange Server experiences performance issues when a PDC emulator is used for DSAccess or ADAcess http://support.microsoft.com/kb/298879

Microsoft Exchange Server 2007 Enterprise Edition

  1. An Exchange Server 2007 Transport Rule does not work as expected http://support.microsoft.com/kb/2673160

Microsoft Exchange Server 2007 Service Pack 3

  1. Exchange ActiveSync does not synchronize some Outlook contact information as expected http://support.microsoft.com/kb/2692134

Microsoft Exchange Server 2007 Standard Edition

  1. Message  when you try to open an attachment in Outlook Web Access or Outlook Web App: “Right-click the link, and then click ‘Save Target As’ to save the attachment.” http://support.microsoft.com/kb/2688092

Microsoft Exchange Server 2010 Coexistence

  1. Error message when you try to use Outlook Web App to access an Exchange Server 2010 mailbox: “There was a problem opening your mailbox” http://support.microsoft.com/kb/2606268
  2. You cannot add mailbox database copies in Exchange Server 2010 http://support.microsoft.com/kb/2627725

Microsoft Exchange Server 2010 Enterprise

  1. Event 1000, 1001, or 1002 occurs when SCOM is monitoring Exchange Server 2007 or Exchange Server 2010 http://support.microsoft.com/kb/2681932
  2. Chat feature missing in Outlook Web App for Exchange 2010 http://support.microsoft.com/kb/2688771

Microsoft Exchange Server 2010 Standard

  1. You cannot synchronize an Exchange ActiveSync device with a mailbox when external URLs are not resolved on an Exchange Server 2010 Client Access server http://support.microsoft.com/kb/2679228
  2. Users cannot use Outlook to access their mailbox after migration to Exchange 2010 http://support.microsoft.com/kb/2688982

Lync

Microsoft Lync 2010

  1. A user whose display name is in Korean cannot be found in Lync 2010 http://support.microsoft.com/kb/2661952
  2. You receive a System.UnauthorizedAccessException exception when you disconnect a call in a Lync 2010 SDK-based application http://support.microsoft.com/kb/2664812
  3. The Windows logoff process is delayed when Lync 2010 is started http://support.microsoft.com/kb/2666324
  4. A customized Lync 2010 Help URL does not work in Lync 2010 http://support.microsoft.com/kb/2666338
  5. A RTF header is displayed instead of the conversation history in the Conversation tab of Lync 2010 http://support.microsoft.com/kb/2666340
  6. The time stamp that is displayed in the IM conversation windows is truncated in Lync 2010 http://support.microsoft.com/kb/2666702
  7. You cannot use client policy to exclude a folder from contact search in Lync 2010 http://support.microsoft.com/kb/2666704
  8. Help with Lync Server 2010 configurations for very small business http://support.microsoft.com/kb/2667699
  9. Description of the cumulative update for Lync 2010: February 2012 http://support.microsoft.com/kb/2670326
  10. The typing status message is not displayed when you use an IME to type double-byte characters in Lync 2010 http://support.microsoft.com/kb/2672922
  11. A contact is displayed with an incorrect picture and incorrect presence information in Lync 2010 http://support.microsoft.com/kb/2672944
  12. Double-byte text is transparent in desktop alerts on a computer that is running Windows XP and that has Lync 2010 installed http://support.microsoft.com/kb/2672945
  13. Description of the cumulative update package for Lync 2010 for iPad: March 2012 http://support.microsoft.com/kb/2673225
  14. The conversation list is not displayed correctly in the chats window after you delete a conversation in Lync 2010 for iPad http://support.microsoft.com/kb/2673304
  15. Users have to manually input the user name every time that they sign in to the Lync 2010 client http://support.microsoft.com/kb/2681509

Microsoft Lync 2010 for iPhone

  1. A user whose SIP URI address only contains numbers is displayed as a telephone contact in Lync 2010 for iPhone http://support.microsoft.com/kb/2672940
  2. Description of the cumulative update package for Lync 2010 for iPhone: March 2012 http://support.microsoft.com/kb/2673223
  3. Meetings are not shown in the Meetings tab in Lync 2010 for iPhone http://support.microsoft.com/kb/2673298
  4. A deleted contact group is still displayed in Lync 2010 for iPhone http://support.microsoft.com/kb/2673303
  5. “Me:” and “Missed:” are translated incorrectly in the chats window in a Korean version of Lync 2010 for iPhone http://support.microsoft.com/kb/2677215
  6. Discovery address text strings are translated incorrectly on the sign-in page of the Chinese Version of Microsoft Lync 2010 for iPhone http://support.microsoft.com/kb/2677216

Microsoft Lync 2010 for Windows Phone

  1. Lync 2010 for Windows Phone displays Japanese text in the Microsoft Yahei font unexpectedly http://support.microsoft.com/kb/2666321
  2. Description of the cumulative update package for Lync 2010 for Windows Phone: March 2012 http://support.microsoft.com/kb/2673226
  3. Lync 2010 mobile clients always prompt the user for a mobile phone number http://support.microsoft.com/kb/2685372

Microsoft Lync 2010 Group Chat

  1. Description of the cumulative update for the Lync Server 2010, Group Chat Administration Tool: February 2012 http://support.microsoft.com/kb/2672318
  2. Description of the cumulative update for Lync 2010 Group Chat: February 2012 http://support.microsoft.com/kb/2672325

Microsoft Lync 2010 Phone Edition

  1. Description of a new feature that lets users set or change their presence information by using a telephone in Lync 2010 Phone Edition http://support.microsoft.com/kb/2666706
  2. Lync 2010 Phone Edition enabled phones report 10 Mbps network link speed http://support.microsoft.com/kb/2686136

Microsoft Lync 2010 Phone Edition for Aastra 6721ip and Aastra 6725ip

  1. The maximum ringer volume is too low on certain telephone products that are running Lync 2010 Phone Edition http://support.microsoft.com/kb/2666323

Microsoft Lync Server 2010 Enterprise Edition

  1. “The owner of the object passed does not match the original owner.” error message when a Lync 2010 user calls a CAA access number to join a conference http://support.microsoft.com/kb/2500431

Microsoft Lync Server 2010 Enterprise Edition

  1. Error message when you run the “Enable-CsAdDomain” command in a Lync Server 2010 environment http://support.microsoft.com/kb/2672929

Microsoft Lync Server 2010 Software Development Kit

  1. A user cannot add a custom location to their contact information by using an application that is developed by using Lync Server 2010 SDK http://support.microsoft.com/kb/2672943

Microsoft Lync Server 2010 Standard Edition

  1. “Please verify your logon credentials and try again” error message when a user signs in to Lync Server 2010 http://support.microsoft.com/kb/2637105
  2. You cannot add a DFS file share as a file store in Topology Builder of Lync Server 2010 http://support.microsoft.com/kb/2666344
  3. Delay processing incoming calls in Lync Server 2010 http://support.microsoft.com/kb/2666349
  4. Error message when you run the Set-CsRegistrar command in Lync Server Management Shell in a Lync Server 2010 environment http://support.microsoft.com/kb/2666710
  5. Error message when you run the “CsFileTransferFilterConfiguration” command in a Lync Server 2010 environment http://support.microsoft.com/kb/2666711
  6. Description of the cumulative update for Lync Server 2010, Conferencing Attendant: February 2012 http://support.microsoft.com/kb/2670540
  7. Text that is typed by using the right-to-left reading order is displayed by using the left-to-right reading order in the sent message pane in Lync 2010 http://support.microsoft.com/kb/2672924
  8. A global client policy in which the “EnableExchangeContactSync” parameter is set to False does not work in Lync Server 2010 http://support.microsoft.com/kb/2672933
  9. Federated users do not receive a meeting invitation in Lync Server 2010 http://support.microsoft.com/kb/2672935
  10. A delegate cannot perform operations on behalf of the manager in a Lync Server 2010 environment http://support.microsoft.com/kb/2673299
  11. A user cannot call a number that matches a normalization rule that begins with optional digits in a Lync Server 2010 environment http://support.microsoft.com/kb/2673302
  12. Description of the cumulative update for Lync Server 2010, Mobility Service: February 2012 http://support.microsoft.com/kb/2675053
  13. A Front End Server does not route network traffic to Lync 2010 Mobile clients if the Collocated Mediation Server option is enabled in Lync Server 2010 http://support.microsoft.com/kb/2675221
  14. The Address Book service does not synchronize user information when data in the RTC database is corrupted in a Lync Server 2010 environment http://support.microsoft.com/kb/2675222
  15. Microsoft Lync Server 2010, Group Chat
  16. A user does not receive an invitation when the user is added to a distribution list that is a member of a chat room in Lync Server 2010, Group Chat http://support.microsoft.com/kb/2666341
  17. The Channel service stops when a user signs in to a Group Chat client in Lync Server 2010, Group Chat http://support.microsoft.com/kb/2666342
  18. Description of the cumulative update for Lync Server 2010, Group Chat: February 2012 http://support.microsoft.com/kb/2670342

Outlook

Microsoft Office Outlook 2003

  1. Description of the Outlook 2003 Junk Email Filter update: March 13, 2012 http://support.microsoft.com/kb/2598246
  2. Description of the policy for how e-mail is filtered by the junk e-mail filters in Outlook or in Exchange Server http://support.microsoft.com/kb/954199

Microsoft Office Outlook 2007

  1. Description of the Outlook 2007 hotfix package (Outlook-x-none.msp): March 7, 2012 http://support.microsoft.com/kb/2597964
  2. Description of the Outlook 2007 Junk Email Filter update: March 13, 2012 http://support.microsoft.com/kb/2597970
  3. Outlook Anywhere cannot be disabled in Outlook 2007 and in Outlook 2010 http://support.microsoft.com/kb/2686042

Microsoft Outlook 2002 Standard Edition

  1. You cannot use Outlook to complete a Microsoft Word Mail Merge http://support.microsoft.com/kb/2149769

Microsoft Outlook 2010

  1. An email message body contains text that is added from previously opened email messages when you access a mailbox by using an IMAP4 client in Outlook 2010 http://support.microsoft.com/kb/2597991
  2. Description of the Outlook 2010 hotfix package (x86 Outexum-x-none.msp, x64 Outexum-x-none.msp): February 28, 2012 http://support.microsoft.com/kb/2598024
  3. Outlook 2010: Leave a copy of the message on the server is missing http://support.microsoft.com/kb/2671941
  4. How to deploy a default email signature in Outlook http://support.microsoft.com/kb/2691977

 

Programatically Add Heys and Values to edgetransport.exe.config for Exchange 2010

February 22, 2012 Leave a comment

Recently, some testing on some new Exchange 2010 hub transport servers yielded some less than expected performance results. Processor utilization was much higher during sustained load testing of message throughput in some dedicated message journal sites.

A colleague worked to determine a solution, and came up with adding two keys and respective values to the EdgeTransport.exe.config file in [Exchange installation folder]\bin. This caused a substantial drop in processor utilization, but caused another problem – how to deploy this solution easily, in a repeatable fashion? We certainly don’t want to have to manually edit dozens of XML files across the production environment.

Our deployment method was entirely scripted, so I set out to find a way to incorporate the fix into the server provisioning scripts. Having not had to deal with editing XML files before, I did a fair amount of searching online, but had trouble with nearly everything I found. Obscure errors, and overly complex code had me just cobbling some things together until it worked. I finally came up with the New-AppSetting function below. It’s lean and mean, but it works.

function New-AppSetting {
	<#
	.SYNOPSIS
	  Adds keys and values to the EdgeTransport.exe.config file for Exchange 2010 	

	.DESCRIPTION
	  Adds user defined keys and values to the EdgeTransport.exe.config file for Exchange 2010 and restarts MSExchangeTransport service 

	.NOTES
	Version      			: 1.0
	Rights Required			: Local admin on server
	    				: ExecutionPolicy of RemoteSigned or Unrestricted
	Exchange Version		: 2010 SP1 UR6
    	Author(s)    			: Pat Richard (pat@innervation.com)
	Dedicated Post			: http://www.ehloworld.com/1055
	Disclaimer   			: You running this script means you won't blame me if this breaks your stuff.
	Info Stolen from 		:	

	.EXAMPLE
		New-AppSetting -key [key] -value [value]

	.INPUTS
		None. You cannot pipe objects to this script.

	#Requires -Version 2.0
	#>

	[cmdletBinding(SupportsShouldProcess = $true)]
	param(
		[parameter(Position = 0, ValueFromPipeline = $false, ValueFromPipelineByPropertyName = $true, Mandatory = $true, HelpMessage = "No key specified")]
		[string]$key,
		[parameter(Position = 0, ValueFromPipeline = $false, ValueFromPipelineByPropertyName = $true, Mandatory = $true, HelpMessage = "No value specified")]
		[string]$value
	)
	[string]$configfile = $env:ExchangeInstallPath+"bin\EdgeTransport.exe.config"
	if (Test-Path $ConfigFile){
		[xml]$xml = Get-Content $ConfigFile
		[string]$currentDate = (get-date).tostring("MM_dd_yyyy-hh_mm_s")
		[string]$backup = $configfile + "_$currentDate"
		Copy-Item $configfile $backup
		$new = $xml.CreateElement('add')
		$new.SetAttribute('key', $key)
		$new.SetAttribute('value', $value)
		$xml.configuration.appSettings.AppendChild($new) | Out-Null
		$xml.Save($ConfigFile)
	}
	Restart-Service MSExchangeTransport
} # end function New-AppSetting

You call it via:

New-AppSetting -key [key name] -value [value]

such as

 New-AppSetting -key "RecipientThreadLimit" -value "20"

And it will add the key at the bottom of the list in EdgeTransport.exe.config and restart the transport service for the change to take effect. Prior to making the change, it creates a backup copy of EdgeTransport.exe.config for safe keeping.

One caveat – I didn’t have a lot of time to add some error checking or validation. The script does not check to see if the key is already present in the list (in our case, it’s not). So if you run the function multiple times with the same key name, you’ll end up with that key appearing multiple times in EdgeTransport.exe.config. I worked around this quickly in my script by using the following:

if ((Get-Content ($env:ExchangeInstallPath+"bin\edgetransport.exe.config")) -notmatch "RecipientThreadLimit"){
	New-AppSetting -key "RecipientThreadLimit" -value "20"
}

If I get some free cycles, I’ll streamline this a little more. But it works, and we’re able to continue deploying dozens of hub transport servers.

Exchange Server 2010 SP2 Is Now Available

December 5, 2011 1 comment

Microsoft has released Service Pack 2 (SP2) for Exchange Server 2010. Release Notes for Exchange 2010 SP2 includes a list of known issues.

The 535MB download is just like RTM – a full install package. Existing installations can be upgraded, as new installs can be completed with the Service Pack integrated.

 

What’s New in Exchange 2010 SP2

The What’s New in Exchange 2010 SP2 has comprehensive list of the changes and enhancements, including:

Address Book Policies

This is a long sought after feature which allows the segmentation of the Global Address List. This essentially allows an organization to have different address books visible to different users and/or groups. This is great, especially in large organization that may want users to just see users in their division, or if an org wants to do a multi-tenant scenario.

Outlook Mobile Access (OWA mini)

This is essentially the old Outlook Mobile Access brought back to life, which allows devices with small screens, such as mobile devices, to see a simple to use web page for accessing their mailbox. This is great for devices that don’t support Exchange ActiveSync.

Hybrid Configuration Wizard

This feature is based around on-premise and cloud based scenarios such as Office365.

OWA Cross-Site redirection

Redirection of client connections across AD sites is now possible.

 

Installation notes

Schema Updates

The service pack does do schema updates in order to support some of the new features.

Required Role Features

Also, on Client Access Servers (CAS), the IIS 6 WMI Compatibility feature is now required.

Installing from the command line

Upgrading is quite simple. Open a command prompt and navigate to the folder containing the extracted files and run:

Setup /m:upgrade /InstallWindowsComponents

The setup routine will automatically install the Web-WMI feature if needed, and upgrade the server.

Installation of SP2 via command prompt

Installation of SP2 via command prompt

Installation from the graphical user interface (GUI)

As mentioned above, the IIS 6 WMI Compatibility (Web-WMI) feature is required. If you plan to install the Service Pack using the GUI, you must manually add this feature. To install the feature, open PowerShell, and type:

Import-Module ServerManager Add-WindowsFeature web-wmi

As shown below.

Add-WindowsFeature Web-WMI
Add-WindowsFeature Web-WMI

If you don’t manually install this feature, the service pack installation will fail:

SP2 fails - IIS 6 WMI Compatibility required

SP2 fails - IIS 6 WMI Compatibility required

Once the SP2 file is downloaded, double click on it to extract the files to a folder.

Navigate to the folder containing the extracted files and double click on setup.exe and follow the prompts.

Installation on Database Availability Groups (DAG)

If you are going to apply SP2 to servers that are members of a DAG, run the StartDagServerMaintenance.ps1 script on the server first. This accomplishes several things, including suspending mailboxdatabase copying for each database; prevents the activation of databases on the server and moves active copies on the server to copies on other servers; prevents the server from taking on the PAM role. When finished, run the StopDagServerMaintenance.ps1 script, which allows databases to be activated, begins the copying, and allows the server to become the PAM. Mike Pfeiffer has a great blog post on this process.

Download

Download the Service Pack from the Microsoft Download Center here.

A stand-alone version of the SP2 Help file is available here.

Unified Messaging language packs for SP2 are available here.

Customizing the Lync Meeting Page – Part II

November 1, 2011 4 comments

In part I, I showed you how to change the logo for the meeting landing page. In this part, we’ll go through adding options to the page for various types of clients.

By default, when entering a meeting, a machine with the Lync client will open up and automatically join. But what if the person attending the meeting doesn’t have the Lync client? A machine without the Lync client will open a popup browser window and use Silverlight, but that doesn’t support all Lync features.

silverlight client

silverlight client

We can allow users with the OCS 2007 R2 legacy Communicator client to use that to join the meeting. We simply open Lync Management Shell and use the Set-CsWebServiceConfiguration cmdlet on our Front-End servers:

Set-CsWebServiceConfiguration -ShowJoinUsingLegacyClientLink $true

And the web page looks like this when opened:

Join using legacy client

Join using legacy client

We can also provide a link for attendees to download the Lync 2010 Attendee client, which provides a better client experience. We can do this by using the same cmdlet in Lync Management Shell, but with a different switch:

Set-CsWebServiceConfiguration -ShowDownloadCommunicatorAttendeeLink $true

Combining the two together allows all possible options:

Set-CsWebServiceConfiguration -ShowDownloadCommunicatorAttendeeLink $true -ShowJoinUsingLegacyClientLink $true

At this point, attendees can join the meeting with the OCS Communicator, Lync, Lync Attendee, or web browser clients. The user would see this (assuming no Lync client installed):

Allow legacy and attendee clients

Allow legacy and attendee clients

Combine that with the custom logo configuration from part 1, and we now have a much more personal and flexible Meet page.

Customizing the Lync Server 2010 Meeting Page

October 25, 2011 13 comments

If you’d like to customize the appearance of the Meet web page (the page a user is taken to when they click the link in a meeting request), you can quickly swap out the Lync logo image with your own logo. By default, the Meet page shows the Lync logo:

Standard Meet page

The Lync logo image file is called CommunicatorLogoType.png. Backup the original and replace it with your logo saved as the same name in the following four folders of your Front End server(s):

  1. C:\Program Files\Microsoft Lync Server 2010\Web Components\Join Launcher\Ext\Resources
  2. C:\Program Files\Microsoft Lync Server 2010\Web Components\Join Launcher\Int\Resources
  3. C:\Program Files\Microsoft Lync Server 2010\Web Components\Reach\Ext\Client\Resources
  4. C:\Program Files\Microsoft Lync Server 2010\Web Components\Reach\Int\Client\Resources

The HTML code for the Meet pages doesn’t specify an image size. So you can use any size image you’d like. However, I don’t suggest you go over ~400 pixels in width or you risk breaking the layout. Here’s how ours looks after replacing the logo:

Customized Meet page

While it’s possible, I doubt the image will get overwritten with rollups or service packs.

Lync Users Can’t Download Address Book if Certificate Uses CNG

October 18, 2011 7 comments

During the building of a greenfield Lync infrastructure, I ran into a problem where no users could download the address book. But everything related to the certs appeared to be correct. CN and SANs were correct, entire cert chain was valid, private keys were there, certs were in the correct stores and assigned in Lync, services started, etc. I also used Jeff Guillet’s Script to Force Download of the Lync Address Book to help speed up the troubleshooting. A considerable amount of troubleshooting went into the issue, and ultimately required a PSS ticket. After a couple of days of back and forth checking and testing, we narrowed it down.

It turns out that a bug with the CA was causing the certs it was generating to include Cryptography Next Generation (CNG). Web components in Lync, including Address Book & Group Expansion, use .Net 3.5. And .Net 3.5 does not support CNG.

Here’s how to check a certificate for CNG:

Open the Certificates snapin in MMC, and locate the certificate you’d like to inspect. Click on the Details tab and note the serial number:

Certificate serial number

Certificate serial number

Open a command prompt and type the following, using the serial number from above without the spaces:

Certutil -v -store my “<certificate serial number>” >Lync_Cert.txt

Next, open Lync_Cert.txt in notepad and look for “CERT_KEY_PROV_INFO_PROP_ID(2):”
A certificate with CNG will have the following:

CERT_KEY_PROV_INFO_PROP_ID(2):
Key Container = le-WebServer2yearv1.0-88442436-55a3-4627-ae3c-3aff914e6153
Unique container name: bdab748e31b2984e0ebe29e7b6839a7f_6418452a-074c-4888-af0e-b969abbc3435
Provider = Microsoft Software Key Storage Provider
ProviderType = 0
Flags = 20
KeySpec = 0

But it should look like this:

CERT_KEY_PROV_INFO_PROP_ID(2):
Key Container = le-WebServer2yearv1.0-88442436-55a3-4627-ae3c-3aff914e6153
Unique container name: bdab748e31b2984e0ebe29e7b6839a7f_6418452a-074c-4888-af0e-b969abbc3435
Provider = Microsoft RSA SChannel Crytographic Provider
ProviderType = C
Flags = 20
KeySpec = 1 — AT_KEYEXCHANGE

If the cert has CNG, you must request a new certificate without it.

PSS ultimately confirmed that this was a bug in the CA. We created a new template based on the WebServer template in the CA infrastructure, and generated new certs from that. Once I had correct certs installed, the problem instantly went away.

Hopefully, this might aid someone else having this issue.

One Liners: Setting Recovery Option to ‘restart’ for Lync Services

October 5, 2011 2 comments

Lync 2013 logo 128x128A client wanted to configure the recovery options for services in Lync to help reduce downtime if/when a service stops. This was no big deal for me, except there are a dozen Lync servers, some of which have quite a few Lync services. I set out to make this easier than manually changing each service’s recovery options.

Service recovery options allow you to define what Windows should do if the service fails. The options are “Take No Action” (the default), “Restart the Service”, “Run a Program”, and “Restart the Computer”. These options can be defined for the first, second, and subsequent service failures. Additional parameters include how long to wait before resetting the failure counter and how long to wait after the service fails before performing the configured failure option. More complex options include running another program:

Default service recovery options before running sc.exe

Default service recovery options before running sc.exe

Unfortunately, PowerShell’s Set-Service doesn’t have a parameter for setting failure options, so we must rely on the command line sc.exe. Sc.exe can be used to create, modify, and delete services. We’ll use this to set our failure options to restart the services. Note: you must use “sc.exe” and not just “sc”, since in PowerShell, “sc” is an alias for Set-Content. The format is

sc.exe [service name] failure reset= [integer] actions= [actions]

Reset is measured in seconds. We’ll use 86400, which is a full 24 hours. Actions are specified as action/wait time in milliseconds. So “restart/5000″ means to wait 5000 milliseconds (5 seconds), and then restart the service. The same action will be applied to the first, second, and subsequent service failure.

We’ll use Get-WMIObject win32_service to grab a list of all of the services, piping that to match descriptions that include “Lync”, and start modes that are “automatic”. The finished one liner command looks like this:

$services = Get-WMIObject win32_service | Where-Object {$_.description -imatch "Lync" -and $_.startmode -eq "Auto"}; foreach ($service in $services){sc.exe failure $service.name reset= 86400 actions= restart/5000}
Recovery options changed

Recovery options changed (click to enlarge)

When we view the properties of the service again, we see that the failure options are set to restart the service, and to reset the counter after 1 day. Since the restart option is only 5 seconds, the “Restart service after” field shows 0 minutes:

Service recovery options after running sc.exe

Service recovery options after running sc.exe

You can also specify different actions for each of the failure instances by adding more actions. For instance, let’s say you want to restart the service for the first and second failures, and reboot the server on subsequent failures. Simply combine the actions together, separating them with a slash, such as:

$services = Get-WMIObject win32_service | Where-Object {$_.description -imatch "Lync" -and $_.startmode -eq "Auto"}; foreach ($service in $services){sc.exe failure $service.name reset= 86400 actions= restart/5000/restart/5000/reboot/5000}

Obviously, a good monitoring solution such as System Center Operations Manager (SCOM) should be used to track and alert when services stop, and when other more serious issues arise. You don’t want to get into a scenario where a service is constantly stopping and being restarted without knowing.