Migration and Coexistence Details
The sections in this topic provide detailed information about migrating applications from previous UCMA versions to current versions, in topologies that can consist of different Microsoft Communications Server/Lync Server 2010 versions.
When Should I Use WMI and When Should I Use PowerShell?
WMI tools such as ApplicationProvisioner.exe, a tool that shipped with the Microsoft Unified Communications Managed API (UCMA) 2.0 SDK, can be used to create trusted service entries and contact objects so that UCMA 2.0 applications continue to work even after an application is migrated. Before using ApplicationProvisioner.exe, you must modify the source code for this tool, and then rebuild it. For more information, see Modifying ApplicationProvisioner.exe Sample Code. In general, Microsoft Lync Server 2010 trusted application PowerShell cmdlets do not work with UCMA 2.0 deployments. The only exceptions are the following cmdlets.
Get-Xxx cmdlets.
The Set-CsTrustedApplicationPool cmdlet, which can be used to retarget the Registrar for an application.
The Move-CsApplicationEndpoint cmdlet, which can be used to retarget the contact object to a new application pool or populate the missing attributes of a UCMA 2.0 application contact object, when the contact object must be routed through the Lync Server 2010 Registrar.
Scenario |
WMI or PowerShell? |
Comments |
---|---|---|
S-1: Coexistence of a UCMA 2.0 application |
WMI |
The application is still deployed in its own UCMA 2.0 application. Therefore no changes needed on how it is managed. |
S-2: Upgrading a UCMA 2.0 application to Microsoft Unified Communications Managed API (UCMA) 3.0 after coexistence |
PowerShell |
PowerShell is needed to move contact objects from UCMA 2.0 application. After the move, management of all contact objects is carried out using Powershell. |
S-3: In-place migration of a UCMA 2.0 application |
Both |
Each time a new contact must be added, you need to add it through the WMI tool and then run PowerShell cmdlet to upgrade the contact object to have Lync Server 2010 properties. |
S-4: Direct deployment of a UCMA 2.0 application against pure Lync Server 2010 |
Both |
Every time a new contact needs to be added, you need to add it through the WMI tool and then run PowerShell cmdlet to upgrade the contact object to have Lync Server 2010 properties. |
S-5: Upgrading a UCMA 2.0 application to UCMA 3.0 after in-place migration |
PowerShell |
PowerShell is needed to move contact objects from a UCMA 2.0 application. After the move, management of all contact objects is done using Powershell. |
S-6: Coexistence of a UCMA 3.0 Application |
PowerShell |
The application is a UCMA 3.0 application, so no changes are needed in how it is managed. |
S-7: Direct deployment of a UCMA 3.0 application against Microsoft Office Communications Server 2007 R2 |
WMI |
The application is a UCMA 3.0 application, but it must be deployed as UCMA 2.0 application. |
S-8: Coexistence and migration of a UCMA V1.0 application |
WMI or PowerShell |
Depends on whether the newly recompiled application is deployed against Office Communications Server 2007 R2 or Lync Server 2010. |
Migrating Trusted Service Entries Using Microsoft Lync Server 2010 Topology Builder or PowerShell Cmdlets
Using Topology Builder
Launch Microsoft Lync Server 2010, Topology Builder.
After the existing topology is loaded, under Action, choose Merge 2007 or 2007 R2 Topology. This launches a wizard.
Go through the wizard, keeping the default options. After the wizard has finished, check that it completed successfully. There should be no errors in the UI.
Select Publish Topology and complete the wizard, as in the previous step.
Using PowerShell
From the Start menu, in the Microsoft Lync Server 2010 program group, open Lync Server Management Shell.
Run the following PowerShell cmdlet. Merge-CsLegacyTopology -TopologyXmlFileName D:\output.xml
Run the following PowerShell cmdlet. Run Publish-CsTopology -FileName D:\output.xml
Verify That Trusted Service Entries Migrated Successfully
Using Microsoft Lync Server 2010 Topology Builder
Launch Topology Builder
Verify that a BackCompatSite node appears under the Lync Server 2010 node.
Under BackCompatSite, in the Trusted application servers node, you should see a pool entry for your application pool.
Using Microsoft Lync Server 2010 Control Panel
Launch Microsoft Lync Server 2010 Control Panel.
Click Topology.
Under the Trusted Application tab, verify that the UCMA 2.0 application has an entry with the correct pool and port numbers, as shown in the following illustration.
Using PowerShell Cmdlets
Although the New-CsTrustedApplicationXxx, Set-CsTrustedApplicationXxx, and Remove-CsTrustedApplicationXxx versions of the Lync Server 2010 cmdlets cannot be used to manage legacy application pools, the Get-CsTrustedApplicationXxx versions can be used to verify that the Pool, Service, Application, and ApplicationEndpoint entries have been created correctly. For more information about any of these cmdlets, run get-help <cmdlet>.
The following PowerShell cmdlet is an example. Get-CsTrustedApplicationPool –Identity TrustPool.contoso.com
In this example, the Identity parameter has been used to ensure that only one trusted application pool is retrieved, the pool whose FQDN is TrustPool.contoso.com. After running the cmdlet, you should verify the following settings in the returned value.
Registrar—should still be the Office Communications Server 2007 R2 pool.
Applications—should contain a list of all UCMA 2.0 applications running in the pool.
SiteId—should be Site.BackCompatSite.
Associate the Existing Backward-compatible Legacy Pool with the Lync Server 2010 Registrar
You will need to run Set-CsTrustedApplicationPool with the needed values for your application pool and Lync Server 2010 registrar pool as follows: Set-CsTrustedApplicationPool –Identity TrustPool.contoso.com –Registrar CS14RegistrarPoolA.contoso.com
Note
When you run this cmdlet, your application stops functioning momentarily. The contact objects are orphaned until they are pointed to a new Registrar.
Get OCSCore.MSI from the Office Communications Server 2007 R2 Installer
The most important thing about this scenario is that the UCMA 2.0 application is expected to be installed in a pure Lync Server 2010 environment using Office Communications Server 2007 R2 WMI tools, which require the Office Communications Server 2007 R2 version of OCSCore. The application also needs OCSCore.msi at run time if it uses WMI-based auto-provisioning. The OCSCore Components runtime package can be downloaded from Office Communications Server 2007 R2, Core Components Runtime Package.
Install the UCMA 2.0 Application
Install the UCMA 2.0 application just as you would have installed it against Office Communications Server 2007 R2. This includes but is not limited to installing UCMARedist(Runtime), SpeechRedist, and OCSCore, creating trusted service entries, and optionally creating Active Directory contact objects. For more information, see Deploying a UCMA 2.0 Core Application.
Add AllowedDomains Using WBemTest
When a UCMA 2.0 application is deployed directly against Lync Server 2010, the SIP domains used in the Lync Server 2010 environment must be added to the Office Communications Server 2007 R2 SIP domain list before you run the Merge-CsLegacyTopology cmdlet. The application is being deployed as if it were being deployed against Office Communications Server 2007 R2, and then migrated to run against Lync Server 2010.
WBemTest can be used to add the SIP domains, as described in the following procedure.
To add AllowedDomains Using WBemTest
In a command prompt window, start WBemTest.exe by typing WBemTest, and pressing ENTER.
In the Windows Management Instrumentation Tester dialog box, click Connect.
In the Connect dialog box, click Connect.
In the Windows Management Instrumentation Tester dialog box, click Enum Classes.
In the Superclass Info dialog box, click OK.
In the Query Result dialog box, scroll down the listbox to MSFT_SIPDomainData(), and double-click this entry.
In the Object editor for MSFT_SIPDomainData dialog box, click Instances. This causes the Query Result dialog box to open, displaying the InstanceIDs for any instances of the MSFT_SIPDomainData WMI class. These entries are the AllowedDomain entries.
To add AllowedDomain entries, click Add.
In the Instance of MSFT_SIPDomainData dialog box, in the Properties listbox, double-click Address.
In the Property Editor dialog box, select the Not NULL radio button.
In the Value text input pane, type the name of the new allowed domain; for example, contoso.com.
Click Save Property.
In the Instance of MSFT_SIPDomainData dialog box, in the Properties listbox, double-click Authoritative. The Authoritative property should not be Null and should be set to False.
Click Save Property.
In the Instance of MSFT_SIPDomainData dialog box, in the Properties listbox, double-click Default Domain. The Default Domain property should not be Null and should be set to True.
Click Save Property.
In the Instance of MSFT_SIPDomainData dialog box, click Save Object.