Stress and Performance Tool: Configure Lync Server 2010 for Scenarios


Topic Last Modified: 2011-03-28

In order to run the Lync Server 2010 Stress and Performance Tool (LyncPerfTool), the Lync Server 2010 topology must first be configured for the scenarios. If Lync Server 2010 is not configured or is configured improperly, load simulation will fail in most cases. With the Lync Server 2010 Stress and Performance Tool package we have provided example Lync Server Windows PowerShell scripts and basic resource files that can be used as a starting point for configuring Lync Server 2010. This section describes the Windows PowerShell examples provided. Note that it is not the goal of this section or document to describe how to configure Lync Server in general. For details about working with Windows PowerShell in Lync Server, see the Lync Server Management Shell documentation at

About Running Lync Server Management Shell Scripts

We have provided example scripts that may be used in preparation for running load simulation. Because the scripts are intended for load simulation, they are simple, permissive and as such may not be appropriate for production. All scripts are examples and must be modified to reflect your topology.


Take care in reviewing and understanding the examples provided. Some scripts will overwrite any existing settings in the topology.


For details about using Windows PowerShell and the Lync Server Management Shell, see the Lync Server 2010 Windows PowerShell Blog at

Stress and Performance Tool Client Version Monikers

You may need to enable the following client versions depending on your Client Version Check policy if you have changed the settings from the default values. For details, see “Client Version Check” at LyncPerfTool uses the following Client Versions when communicating with Lync Server:

  • OCSStress-OC/4.0.7000.0

  • OCPHONE/1.0.522

Provisioning the Topology to Run Load

  1. Depending on your existing settings and the way you plan on configuring Lync Server 2010, you may need to set the Windows PowerShell execution policy to Unrestricted. To check your execution policy settings, run the following command from the Lync Server Management Shell:


    If this command does not return the value Unrestricted, run this command:

    Set-ExecutionPolicy Unrestricted
  2. You will need to gather information and have familiarity with the following:

    • The Lync Server 2010 topology (for example, computer names, service instances, site names, and policies).

    • Some of the users that were created to be assigned to groups, such as Response Group hunt groups (for example, SIP URIs).

    • You will need to know the Service ID instances for Lync Server Call Park service, Conferencing Attendant application, and Lync Server Response Group service if you will be running load on them. You can find the service instance by running the following command:

      Get-CsService | Where-Object { $_.ServiceId.ToString() -like "*Application*"}
  3. To run the script from the command line you may use:

    powershell.exe -file <path to the edit file>

  4. Typically after one of the scripts in this package runs, all the logs from the script will be stored on the %SystemDrive% in the format %SystemDrive%\<scriptname>$h$m$s.txt. For example, running ArchivingPolicy.ps1 at 12:15 P.M. will generate a log file such as C:\ArchivingPolicy121500.txt.

  5. Finally, note that while we have provided examples to configure the server, you are responsible for modifying or deleting the configuration after you are done running the load.

Configuring the Simple URL Policy

See the example script SimpleUrlPolicy.ps1. Note that the certificates you use for authenticating Web Services through HTTPS depend on the URLs you specify in this policy. For details, see the Lync Server 2010 documentation and the cmdlet help for Web Server and Services Cmdlets.

Configuring the Archiving Policy

See the example script ArchivingPolicy.ps1. You need to use this script only if an Archiving Server is deployed in your topology. For details, see the Lync Server 2010 documentation and the cmdlet help for Archiving and Monitoring Cmdlets.

Configuring the Conferencing Policy

See the example script MeetingPolicy.ps1. For details, see the Lync Server 2010 documentation and the cmdlet help for Web Conferencing Cmdlets.

Configuring the Contacts Policy

See the example ContactsPolicy.ps1. For details, see the Lync Server 2010 documentation and the cmdlet help for IM and Presence Cmdlets.

Configuring the Federation Policy

See the example FederationPolicy.ps1. For details, see the Lync Server 2010 documentation and the cmdlet help for Edge Server Cmdlets and Federation and External Access Cmdlets.

Configuring the Call Admission Control Policy

See the example BandwidthPolicy.ps1. For details, see the Lync Server 2010 documentation Overview of Call Admission Control and the cmdlet help for Call Admission Control Cmdlets.

Configuring the Voice Routing Rules

See the example RoutingRules.ps1. When configuring the voice routing rules, you should take note of the Phone Context/Location Profile/SimpleName and Internal/External Area Codes so that you can specify them when creating users and during LyncPerfTool configuration (specifically for Conferencing Auto Attendant, PSTN-UC and UC-PSTN). The value of these fields should be the same as the value for the SimpleName parameter in the call to New-CsDialPlan in the RoutingRules.ps1 example. For example, the LocationProfile value in the following figure should match the value of the SimpleName parameter.

LocationProfile value in a voice scenario

Advanced configuration location profile

For details, see the Lync Server 2010 documentation and the cmdlet help for Enterprise Voice Cmdlets.

Configuring Conferencing Attendant application

See the example ConferenceAutoAttendantConfiguration.ps1. Take note of the ConferencingAutoAttendant phone number to input it into the LyncPerf Tool configuration. For details, see the Lync Server 2010 documentation and the cmdlet help for Web Conferencing Cmdlets and Dial-In Conferencing Cmdlets.

Configuring Lync Server Call Park service

See the example CallParkConfiguration.ps1. For details, see the Lync Server 2010 documentation and the cmdlet help for Call Park Application Cmdlets.

Configuring Emergency Calls

Perform the following steps to configure stress and performance testing for emergency calls.

  1. Set up a voice route for emergency calls. See the RoutingRules.ps1 script under the comment “Route E911 to PSTN” for an example of setting up this voice route.


    The example command in RoutingRules.ps1 has a number pattern that includes the number 119 rather than 911. You should avoid using 911 (or your actual local emergency number) to prevent accidental calls to your local emergency operators during load testing. This configuration is for simulation purposes only.

  2. Configure addresses by filling in the values on the LIS tab in the StressConfig tool, as shown in the following figure.

    LIS tab of the Lync Server User Creation tool

    Create Location Information service configuration

  3. Click Create LIS Config.

  4. CSV files for ports, subnets, switches, and wireless access points (WAPs), and an XML file for Lync Server 2010 Stress and Performance Tool are generated. The CSV files are to be used as inputs when configuring Location Information service (LIS) with the LisConfiguration.ps1 script. Move the Locations0.xml file to the same folder as the Lync Server 2010 Stress and Performance Tool executable (LyncPerfTool.exe), which will run location profile (dial plan) scenarios.

Creating, Enabling, Configuring, and Disabling Users

You should create all your users before running the following scripts. Follow the instructions in Stress and Performance Tool: Create Users and Contacts to create users. For details, see the Lync Server 2010 cmdlet documentation for Get-CsUser, Set-CsUser, and Disable-CsUser.

Configuring Response Group application

See the example ResponseGroupConfiguration.ps1. For details, see the Lync Server 2010 documentation and the cmdlet help for Response Group Application Cmdlets.

To review the Response Group application configuration, see https://<poolfqdn>.com/RgsConfig/, as shown in the following figure.

Response Group Configuration Tool

Response Group configuration