[This is preliminary documentation and is subject to change. Blank topics are included as placeholders.]

Tests the ability of two users to exchange instant messages.

Syntax

Test-CsIM -TargetFqdn <String> [-Force <SwitchParameter>] [-OutVerboseVariable <String>] [-ReceiverSipAddress <String>] [-RegistrarPort <Nullable>] [-SenderSipAddress <String>]
Test-CsIM -TargetFqdn <String> -ReceiverCredential <PSCredential> -ReceiverSipAddress <String> -SenderCredential <PSCredential> -SenderSipAddress <String> [-Force <SwitchParameter>] [-OutVerboseVariable <String>] [-RegistrarPort <Nullable>]

Parameters

Parameter Required Type Description

TargetFqdn

Required

String

Fully qualified domain name of the pool to be tested.

SenderCredential

Required

PS credential object

User credential object for the first of the two user accounts to be tested. The value passed to SenderCredential should be an object reference obtained by using the Get-Credential cmdlet. For example, this code returns a credentials object for the user litwareinc\kenmyer and stores that object in a variable named $x:

$x = Get-Credential "litwareinc\kenmyer"

You need to supply the user password when running this command.

The sender credential is not required if you are running the test under the health monitoring configuration for the pool.

SenderSipAddress

Required

String

SIP address for the first of the two user accounts to be tested. For example: -SenderSipAddres "sip:kenmyer@litwareinc.com". The SenderSIPAddress parameter must reference the same user account as SenderCredential.

The SIP address is not required if you are running the test under the health monitoring configuration for the pool.

ReceiverCredential

Required

PS credential object

User credential object for the second of the two user accounts to be tested. The value passed to ReceiverCredential should be an object reference obtained by using the Get-Credential cmdlet. For example, this code returns a credentials object for the user litwareinc\jhaas and stores that object in a variable named $y:

$y = Get-Credential "litwareinc\jhaas"

You need to supply the user password when running this command.

The receiver credential is not required if you are running the test under the health monitoring configuration for the pool.

ReceiverSipAddress

Optional

String

SIP address for the second of the two user accounts to be tested. For example: -ReceiverSipAddress "sip:jhaas@litwareinc.com". The ReceiverSipAddress parameter must reference the same user account as ReceiverCredential.

The SIP address is not required if you are running the test under the health monitoring configuration for the pool.

RegistrarPort

Optional

Integer

SIP port used by the Registrar service. This parameter is not required if the Registrar uses the default port 5061.

Verbose

Optional

Switch Parameter

Reports detailed activity to the screen as the cmdlet runs.

Force

Optional

Switch Parameter

Suppresses the display of any non-fatal error message that might arise when running the command.

Detailed Description

Test-CsIM is an example of a Communications Server "synthetic transaction." Synthetic transactions are used in Microsoft Communications Server to verify that users are able to successfully complete common tasks such as logging on to the system, exchanging instant messages, or making calls to a phone located on the Public Switched Telephone Network (PSTN). These tests can be conducted "manually" by an administrator, or they can be automatically run by an application such as Microsoft System Center Operations Manager.

Synthetic transactions are typically conducted in two different ways. Many administrators will use the CsHealthMonitoringConfiguration cmdlets to set up a "health registrar" for each of their registrar pools. A health registrar is nothing more than a pair of users who have been preconfigured for use with synthetic transactions. (Typically these are test accounts and not accounts belonging to actual users.) With a health registrar configured for a pool, administrators can simply run a synthetic transaction against that pool without having to specify the identities of (and supply the credentials for) the user accounts involved in the test.

Alternatively, administrators can run a synthetic transaction using actual user accounts. For example, if two users are unable to exchange instant messages, an administrator can run a synthetic transaction using the two user accounts in question (as opposed to a pair of test accounts) to try to diagnose and resolve the problem. If you decide to conduct a synthetic transaction using actual user accounts keep in mind that you will have to supply the logon names and passwords for each user.

The Test-CsIM cmdlet starts off by trying to log a pair of test users on to Microsoft Communications Server. Assuming the two logons are successful, the cmdlet then initiates an instant messaging session between the two test users. (User 1 invites User 2 to an instant messaging session, and User 2 accepts the invitation.) After verifying that messages can be exchanged between the two users, Test-CsIM then ends the instant messaging session and logs both users off of the system.

Return Types

Test-CsIM returns an instance of the Microsoft.Rtc.SyntheticTransactions.TaskOutput object.

Examples

-------------------------- Example 1 --------------------------

Copy Code
Test-CsIm -TargetFqdn atl-cs-001.litwareinc.com

The preceding example checks to see if a pair of preconfigured test users can log on to the pool atl-cs-001.litwareinc.com and then exchange instant messages. This command will work only if a health monitoring registrar has been defined for the pool atl-cs-001.litwareinc.com. If it has, then the command will determine whether the two users can log on to the system and, if so, can then exchange instant messages. I

f a registrar has not been defined then the command will fail because it will not know which users to employ when doing the test. If you have not defined a health monitoring registrar for a pool then you must include the -SenderSipAddress and –ReceiverSipAddress parameters as well as the corresponding credentials for the involved in the instant message exchange. Test-CsIM will then conduct its checks using the two specified users.

-------------------------- Example 2 --------------------------

Copy Code
$cred1 = Get-Credential "litwareinc\jhaas"
$cred2 = Get-Credential "litwareinc\kenmyer"

Test-CsIm -TargetFqdn atl-cs-001.litwareinc.com -SenderSipAddress "sip:jhaas@litwareinc.com" -SenderCredential $cred1 -ReceiverSipAddress "sip:kenmyer@litwareinc.com" -ReceiverCredential $cred2

The commands shown in Example 2 test the ability of a pair of users (litwareinc\jhaas and litwareinc\kenmyer)) to logon on to Microsoft Communications Server and then exchange instant messages. To do this, the first command in the example uses the Get-Credential cmdlet to create a PowerShell credential object containing the name and password of the user Jonathan Haas. (Because the logon name - litwareinc\jhaas - has been included as a parameter, the resulting Windows PowerShell Credential Request dialog box will only require the administrator to enter the password for the Jonathan Haas account.) The resulting credential object is then stored in a variable named $cred1. The second command does the same thing, this time returning a credential object for the Ken Myer account.

With the two credential objects in hand, the third command in the example determines whether or not the two users can log on to Microsoft Communications Server and then exchange instant messages. To carry out this task, Test-CsIM is called, along with the following parameters: -TargetFqdn (the fully qualified domain name of the registrar pool); -SenderSipAddress (the SIP address for user 1); -SenderCredential (the PowerShell object containing the credentials for user 1); -ReceiverSipAddress (the SIP address for user 2); and –ReceiverCredential (the PowerShell object containing the credentials for user 2).