Step-by-Step instructions for uninstalling a Microsoft Lync Server 2010 Enterprise Pool

I’m not sure if it’s just me but I had a hard time finding documentation that clearly outline the steps required to completely remove Microsoft Lync Server 2010 from your environment.  Yes, there are bits and pieces out there that range from specific steps for part of the process and a detail blog post about how to remove all traces from Active Directory with a combination of PowerShell commands and adsiedit.  Though I’m sure I could have used the information I found to hack away at then environment, I felt that I really wanted to figure out how to perform the uninstall without having to resort to the manual procedures required when using LDP and ADSIedit.  After having no luck through spending hours trying to find documentation that outlines the process from start to finish, I began trying the Microsoft TAP and the Microsoft Partner forums.  The TAP forum responses I got was pretty much what I had already known (references to cmdlets that remove the CMS) and the same goes for the Microsoft Partner forums initially.  Being unsatisfied with the information I had through these two resources I gave up on the TAP forum because no one’s obligated to answer my questions but continued trading emails with a Microsoft engineer from the Partner Forums because they’ll always try their best to assist until you reach a dead end.  After 4 days of trading messages (they answer your question overnight) I finally got enough information to avoid using adsiedit to remove Lync from our environment.  I apologize for the long overview but I really wanted communicate how frustrating it was trying to do this.  Now on to the good stuff:

Let’s start with a short description of the environment: 

You’ve deployed an enterprise pool with one front-end server that collocates all the roles that are collocate-able to the server (i.e. mediation, a/v conferencing), a backend SQL server that hosts your pool’s database and no Edge, Monitoring and Archiving servers have not been deployed.  The first step you’ll need to do is to open up Topology Builder, and expand your enterprise pool.  Once the node has been expanded, right-click on the pool, select Topology and then Remove Deployment.

image

With the above steps, the Remove Deployment Wizard will launch:

image 

As indicated in the description above, this is the first step in completely removing your Lync Server deployment.  The prerequisites are outlined so make sure you met them before proceeding with this step.

image

Once the wizard has performed the removal of the components, the instructions in the above screenshot will be displayed.  What I didn’t like about this window was that while it did indicate I needed to publish the empty topology from Topology Builder and validate replication, it was skimpy on the details for the rest of the steps.  What you’ll also notice after this wizard runs is that if you had a legacy BackCompatSite merged with your OCS 2007 R2 environment, it will now be gone:

image

So now that we have an empty topology to be published, proceed with using the Publish Topology action from the Action tab to publish the topology:

image

The familiar Publish Topology wizard will now launch so proceed as you would for an install:

image

Once you execute publishing the empty topology, you’ll see an output of the process similar to the following screenshot:

image

As shown in the above, it does complain about ocspool2 which was a OCS 2007 R2 pool and since I couldn’t find any documentation as to whether I needed to do anything prior to this step, I can’t really comment on whether something was missed.  I will definitely update this post in the future when I find out though.

Once the process completes, you’ll see something similar to the following:

image

I did check the logs to see what the warnings were and although I don’t really remember (it’s been 2 weeks), I do remember it wasn’t anything that I felt needed to be addressed.  Just to be safe, I went ahead to force replication using Replication Monitor:

image

From here on, I went ahead to run Setup.exe from the installation binaries and ran Step 2: Setup or Remove Lync Server Components:

image

image

image

image

image

As shown in the output above, roles are now being disabled.

image 

Once completed, we will now see Step 2: Setup or Remove Lync Server Components labeled as: Run Again.

image

If you’ve closed the Topology Builder, reopen it and download the topology:

image

You will now be left with the following:

  1. Your enterprise pool
  2. A node underneath your enterprise pool referencing your front-end server
  3. A reference to the backend SQL database
  4. A reference to the file share

This is where I was essentially stuck.  I can’t simply right click on the pool and choose Delete because I would end up with the following error:

image

A published pool hosting Central Management Service can not be removed. Please read product documentation to to find out how to move Central Management Service to a different pool.

image

I know for a fact that I can simply create a new pool and front-end, move it and remove this ocspool3 but what I’m trying to accomplish here is to remove Lync completely.  While I was able to find cmdlet that seemingly removes CMS, I was determined to figure out how to do this properly without hacking away at it.  Before I proceed, let me include another screenshot of what the environment looks like now when I select the pool:

image

From here on, I tried right-clicking on the front-end server and selected delete and it did let me delete the node but now I am left with a red X on the pool:

image

image

As shown in the above screenshot, I also get a nice big red X icon indicating that: A pool must contain at least 1 machine.  Since I wasn’t even sure if I was supposed to do this, I closed Topology Builder without publishing and reloaded the topology information.  I then went ahead and tried deleting the file stores to see what would happen and the following is the error:

image

This file store is being used. Remove the dependencies before deleting the store. Affected services:

Roles ‘WebServices, ConfServices, ApplicationServer, CentralMgmt’ on pool ‘ocspool3’

image

Ok, no surprise there since the pool is still here.  I went ahead to try deleting the SQL stores to see what would happen and I would get the following error message:

image

This SQL store is being used. Remove the dependencies before deleting the store. Affected services:

Roles ‘UserServices, ApplicationServer, CentralMgmt’ on pool ‘ocspool3’

image

Ok, again, no surprise there since the pool is still here.  This is where I began spending over 2 hours trying to find official documentation on TechNet on what to do next but unfortunately, what I was looking for did not appear to exist.  As I had indicated earlier, I began trading emails with a Microsoft engineer and after 4 days, I finally got further instructions.  The first step from this point on is to remove the conference directories and to do this, we need to excute the cmdlet Get-CsConferenceDirectory from within the Lync Server Management Shell:

PS C:Userstluk> Get-CsConferenceDirectory

Identity : 1

ServiceId : UserServer:ocspool3

TargetServerIfMoving :

Id : 1

Fingerprint : 0b507838-20b9-444c-86e2-3174d2d2dd64

Identity : 3

ServiceId : BackCompatSite-UserServices-1

TargetServerIfMoving :

Id : 3

Fingerprint :

PS C:Userstluk>

image

As shown in the above, we currently have 2 so I proceeded to remove the BackCompatSite-UserServices-1 which then threw the following error:

PS C:Userstluk> Get-CsConferenceDirectory

Identity : 1

ServiceId : UserServer:ocspool3

TargetServerIfMoving :

Id : 1

Fingerprint : 0b507838-20b9-444c-86e2-3174d2d2dd64

Identity : 3

ServiceId : BackCompatSite-UserServices-1

TargetServerIfMoving :

Id : 3

Fingerprint :

PS C:Userstluk> Remove-CsConferenceDirectory -Identity 3

Remove-CsConferenceDirectory : Cannot find a definition for a conference direct

ory home pool with service ID “BackCompatSite-UserServices-1”.

At line:1 char:29

+ Remove-CsConferenceDirectory <<<< -Identity 3

+ CategoryInfo : NotSpecified: (:) [Remove-CsConferenceDirectory]

, ConferenceDirectoryException

+ FullyQualifiedErrorId : Cannot find a definition for a conference direct

ory home pool with service ID “BackCompatSite-UserServices-1”.,Microsoft.R

tc.Management.ConferenceDirectoryCmdlets.RemoveConferenceDirectoryCmdlet

PS C:Userstluk>

image

I originally had no idea why I’m getting an error here but thinking I believe it’s obvious that we’re trying to remove a reference to the BackCompatSite-UserServices-1 which no longer exists through looking at the topology information in Topology Builder.  I went ahead and proceed with removing the conference directory that belonged to the Lync pool and it executed without any issues:

PS C:Userstluk> Remove-CsConferenceDirectory -Identity 1

WARNING: You are about to delete the last conference directory. Users on this

pool won’t be able to schedule PSTN conferences anymore.

Confirm

Are you sure you want to perform this action?

Performing operation “Remove-CsConferenceDirectory” on Target “Conference

directory 1″.

[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help

(default is “Y”):y

PS C:Userstluk>

image

I then went back to the BackCompatSite-UserServices-1 but used the -force switch this time but still couldn’t remove it:

image

Executing the original Get-CsConferenceDirectory still showed the conference directory:

image

Since it was late at night on a weekend, I proceeded with the next step I got from the engineer which was to execute Publish-CsTopology -FinalizeUninstall:

PS C:Userstluk>

PS C:Userstluk> Publish-CsTopology -FinalizeUninstall

Deleting application server “ocspool3” in pool “1-ApplicationServer-1”.

One or more application or external servers have been deleted.

When you delete an application or external server, you delete all configuration

state for the hosted applications. Do you want to continue?

[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help

(default is “Y”):y

PS C:Userstluk>

image

From here on, the next cmdlet to run is Stop-CsWindowsService to stop the services:

PS C:Userstluk> Stop-CsWindowsService

WARNING: Lync Server services have been stopped, but web components hosted by

IIS may still be running. If lync01.domain.com is part of a Front End

pool, stop IIS (W3SVC) to help prevent request failures.

WARNING: “Stop-CsWindowsService” processing has completed with warnings. “1”

warnings were recorded during this run.

WARNING: Detailed results can be found at

“C:UserstlukAppDataLocalTemp2Stop-CsWindowsService-9b88b08c-ee3e-4bac-8b

0e-d6de53cd626d.html”.

PS C:Userstluk>

image

From here, we will need to run bootstrapper.exe which can be found in the folder %program files%Microsoft Lync Server 2010Deployment:

image

image

Once completed, you’ll see a bunch of output similar to the following:

C:Program FilesMicrosoft Lync Server 2010Deployment>Bootstrapper.exe

Logging status to: C:UserstlukAppDataLocalTempBootstrap-CsMachine-[2011_01

_14][12_27_53].html

Checking prerequisites for bootstrapper…

Checking prerequisite WMIEnabled…prerequisite satisfied.

Checking prerequisite NoBootstrapperOnBranchOfficeAppliance…prerequisite satis

fied.

Checking prerequisite SupportedOS…prerequisite satisfied.

Checking prerequisite NoOtherVersionInstalled…prerequisite satisfied.

Host name: ullync01.unislumin.com

WARNING! Host not found in topology. All roles will be uninstalled.

Disabling unused roles…

Executing PowerShell command: Disable-CSComputer -Confirm:$false -Verbose -Repor

t “C:UserstlukAppDataLocalTempDisable-CSComputer-[2011_01_14][12_27_54].ht

ml”

Removing AppServer.msi(Feature_AppServer)…success

Removing MgmtServer.msi(Feature_FTA)…success

Removing MgmtServer.msi(Feature_Master)…success

Removing MgmtServer.msi(Feature_MGMTServer)…success

Removing Server.msi(Feature_Server)…success

Removing WebComponents.msi(Feature_WebComponent_AddressBook)…success

Removing WebComponents.msi(Feature_WebComponent_AdminUI)…success

Removing WebComponents.msi(Feature_WebComponent_AuthFramework)…success

Removing WebComponents.msi(Feature_WebComponent_CertProv)…success

Removing WebComponents.msi(Feature_WebComponent_DataMCUWeb)…success

Removing WebComponents.msi(Feature_WebComponent_DevUpdate)…success

Removing WebComponents.msi(Feature_WebComponent_DialinPage)…success

Removing WebComponents.msi(Feature_WebComponent_GroupExpansion)…success

Removing WebComponents.msi(Feature_WebComponent_JoinLauncher)…success

Removing WebComponents.msi(Feature_WebComponent_LocationInfo)…success

Removing WebComponents.msi(Feature_WebComponent_MeetingMCUWeb)…success

Removing WebComponents.msi(Feature_WebComponent_OcsPowershell)…success

Removing ReachFonts.msi(Feature_WebComponent_ReachFonts)…success

Removing WebComponents.msi(Feature_WebComponent_ReachWeb)…success

Removing WebComponents.msi(Feature_WebComponent_Rgs)…success

Removing WebComponents.msi(Feature_WebComponent_WebTicket)…success

Removing WebComponents.msi(Feature_WebComponents_CommonFiles)…success

Removing OcsMcu.msi(IMMCU)…success

Removing OcsMcu.msi(OcsMCUCommon)…success

Removing Server.msi(RegistrarStore)…success

Checking prerequisites for roles…

Checking prerequisite SupportedOS…prerequisite satisfied.

Checking prerequisite SupportedOSNoDC…prerequisite satisfied.

Checking prerequisite NoUnsupportedSqlRtcLocal…prerequisite satisfied.

Checking prerequisite WMIEnabled…prerequisite satisfied.

Checking prerequisite NoOtherVersionInstalled…prerequisite satisfied.

Checking prerequisite PowerShell2…prerequisite satisfied.

Checking prerequisite SqlExpressRtcLocal…prerequisite satisfied.

Checking prerequisite VCredist…prerequisite satisfied.

Checking prerequisite SqlNativeClient…prerequisite satisfied.

Checking prerequisite SqlBackcompat…prerequisite satisfied.

Checking prerequisite UcmaRedist…prerequisite satisfied.

No databases discovered, skipping Install-CsDatabase…

No roles discovered, skipping Enable-CsComputer…

Complete.

Log file was: %TEMP%Bootstrap-CsMachine-[2011_01_14][12_27_53].html

C:Program FilesMicrosoft Lync Server 2010Deployment>

image

Now that bootstrapper.exe has completed, the next step is to execute: Uninstall-CsDatabase -DatabaseType Application -SqlServerFqdn <yourSQL.domain.com> -SqlInstanceName <yourSQLinstanceName>

Which will then output something similar to the following:

PS C:Userstluk> Uninstall-CsDatabase -DatabaseType Application -SqlServerFqdn
sql04.yourDomain.com -SqlInstanceName Lync2010

Uninstall Database
Uninstall databases required by Lync Server role(s).
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is “Y”):y
Running script: C:Windowssystem32cscript.exe //Nologo “C:Program FilesCommo
n FilesMicrosoft Lync Server 2010DbSetupRgsConfigDbSetup.wsf” /drop /sqlserve
r:sql04.yourDomain.comLync2010 /serveracct:someDomainRTCComponentUniversalServic
es /adminacct:someDomainRTCUniversalServerAdmins /roacct:someDomainRTCUniversalReadO
nlyAdmins /verbose
—————
Installed SQL Server 2005 Backward Compatibility version is 8.05.2312
Connecting to SQL Server on sql04.yourDomain.comLync2010
SqlMajorVersion : 10
SqlMinorVersion : 0
SqlBuildNo : 2531
SQL version is acceptable: 10.0.2531.0
Default database data file path is C:Program FilesMicrosoft SQL ServerMSSQL10
.LYNC2010MSSQLData
Default database data file path is C:Program FilesMicrosoft SQL ServerMSSQL10
.LYNC2010MSSQLData
Default database log file path is C:Program FilesMicrosoft SQL ServerMSSQL10.
LYNC2010MSSQLData
Opened database rgsconfig
Opened database rgsconfig
Restricting access and dropping database.
Dropped database rgsconfig
—————
Exit code: SUCCESS (0)
—————

Running script: C:Windowssystem32cscript.exe //Nologo “C:Program FilesCommo
n FilesMicrosoft Lync Server 2010DbSetupRgsDynDbSetup.wsf” /drop /sqlserver:u
lsql04.yourDomain.comLync2010 /serveracct:someDomainRTCComponentUniversalServices
/adminacct:someDomainRTCUniversalServerAdmins /roacct:someDomainRTCUniversalReadOnly
Admins /verbose
—————
Installed SQL Server 2005 Backward Compatibility version is 8.05.2312
Connecting to SQL Server on sql04.yourDomain.comLync2010
SqlMajorVersion : 10
SqlMinorVersion : 0
SqlBuildNo : 2531
SQL version is acceptable: 10.0.2531.0
Default database data file path is C:Program FilesMicrosoft SQL ServerMSSQL10
.LYNC2010MSSQLData
Default database data file path is C:Program FilesMicrosoft SQL ServerMSSQL10
.LYNC2010MSSQLData
Default database log file path is C:Program FilesMicrosoft SQL ServerMSSQL10.
LYNC2010MSSQLData
Opened database rgsdyn
Opened database rgsdyn
Restricting access and dropping database.
Dropped database rgsdyn
—————
Exit code: SUCCESS (0)
—————

Running script: C:Windowssystem32cscript.exe //Nologo “C:Program FilesCommo
n FilesMicrosoft Lync Server 2010DbSetupCpsDynDbSetup.wsf” /drop /sqlserver:u
lsql04.yourDomain.comLync2010 /serveracct:someDomainRTCComponentUniversalServices
/adminacct:someDomainRTCUniversalServerAdmins /roacct:someDomainRTCUniversalReadOnly
Admins /verbose
—————
Installed SQL Server 2005 Backward Compatibility version is 8.05.2312
Connecting to SQL Server on sql04.yourDomain.comLync2010
SqlMajorVersion : 10
SqlMinorVersion : 0
SqlBuildNo : 2531
SQL version is acceptable: 10.0.2531.0
Default database data file path is C:Program FilesMicrosoft SQL ServerMSSQL10
.LYNC2010MSSQLData
Default database data file path is C:Program FilesMicrosoft SQL ServerMSSQL10
.LYNC2010MSSQLData
Default database log file path is C:Program FilesMicrosoft SQL ServerMSSQL10.
LYNC2010MSSQLData
Opened database cpsdyn
Opened database cpsdyn
Restricting access and dropping database.
Dropped database cpsdyn
—————
Exit code: SUCCESS (0)
—————

PS C:Userstluk>

image

image

Once you’ve completed uninstalling the CsDatabase for Application, we can proceed with doing the same for Archiving (if it exists).  There’s no harm done executing the command so if you’re not sure, just execute it anyways:

PS C:Userstluk> Uninstall-CsDatabase -DatabaseType Archiving -SqlServerFqdn

sql04.domain.com -SqlInstanceName Lync2010

Uninstall Database

Uninstall databases required by Lync Server role(s).

[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help

(default is “Y”):y

Database created by script “RtcLogDbSetup.wsf” does not exist. There is nothing

to remove.

PS C:Userstluk>

image

As shown in the above output, I didn’t have one.  The same goes for the Monitoring database as shown in the following:

PS C:Userstluk> Uninstall-CsDatabase -DatabaseType Monitoring -SqlServerFqdn sql04.domain.com -SqlInstanceName Lync2010

Uninstall Database

Uninstall databases required by Lync Server role(s).

[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help

(default is “Y”):y

Database created by script “RtcCdrDbSetup.wsf” does not exist. There is nothing

to remove.

Database created by script “rtcaggregatordbsetup.wsf” does not exist. There is n

othing to remove.

PS C:Userstluk>

image

Now that we have uninstalling the Application, Archiving and Monitoring databases, we can proceed with uninstalling the Central Management Database with the command: Uninstall-CsDatabase -CentralManagementDatabase -SqlServerFqdn <yourSQLserver.domain.com> -SqlInstanceName <yourInstanceName>:

PS C:Userstluk> Uninstall-CsDatabase -CentralManagementDatabase -SqlServerFqdn
sql04.someDomain.com -SqlInstanceName Lync2010

Uninstall Database
Uninstall databases required by Lync Server role(s).
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is “Y”):y
Running script: C:Windowssystem32cscript.exe //Nologo “C:Program FilesCommo
n FilesMicrosoft Lync Server 2010DbSetupxdssetup.wsf” /drop /sqlserver:sql0
4.someDomain.comLync2010 /publisheracct:someDomainRTCUniversalServerAdmins /replic
atoracct:someDomainRTCUniversalConfigReplicator /consumeracct:someDomainRTCUniversal
ReadOnlyAdmins /role:master /verbose
—————
Installed SQL Server 2005 Backward Compatibility version is 8.05.2312
Connecting to SQL Server on sql04.someDomain.comLync2010
SqlMajorVersion : 10
SqlMinorVersion : 0
SqlBuildNo : 2531
SQL version is acceptable: 10.0.2531.0
Default database data file path is C:Program FilesMicrosoft SQL ServerMSSQL10
.LYNC2010MSSQLData
Default database data file path is C:Program FilesMicrosoft SQL ServerMSSQL10
.LYNC2010MSSQLData
Default database log file path is C:Program FilesMicrosoft SQL ServerMSSQL10.
LYNC2010MSSQLData
Opened database xds
Restricting access and dropping database.
Dropped database xds
—————
Exit code: SUCCESS (0)
—————

Running script: C:Windowssystem32cscript.exe //Nologo “C:Program FilesCommo
n FilesMicrosoft Lync Server 2010DbSetuplisdbsetup.wsf” /drop /sqlserver:ulsq
l04.someDomain.comLync2010 /adminacct:someDomainRTCUniversalServerAdmins /verbose
—————
Installed SQL Server 2005 Backward Compatibility version is 8.05.2312
Connecting to SQL Server on sql04.someDomain.comLync2010
SqlMajorVersion : 10
SqlMinorVersion : 0
SqlBuildNo : 2531
SQL version is acceptable: 10.0.2531.0
Default database data file path is C:Program FilesMicrosoft SQL ServerMSSQL10
.LYNC2010MSSQLData
Default database data file path is C:Program FilesMicrosoft SQL ServerMSSQL10
.LYNC2010MSSQLData
Default database log file path is C:Program FilesMicrosoft SQL ServerMSSQL10.
LYNC2010MSSQLData
Opened database lis
Restricting access and dropping database.
Dropped database lis
—————
Exit code: SUCCESS (0)
—————

PS C:Userstluk>

image

Now as the final step (at least from the cmdlet perspective), we need to execute Remove-CsConfigurationStoreLocation:

PS C:Userstluk> Remove-CsConfigurationStoreLocation

Remove existing configuration store location?

Removing the configuration store location set to

“sql04.domain.comLync2010” will break your Lync Server deployment. Do

you want to continue?

[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help

(default is “Y”):y

PS C:Userstluk>

image 

Once the step above is completed, you can try opening Topology Builder to download the topology and you’ll see the following:

image 

Topology Builder could not copy the topology from the Central Management Store. Cannot find location of Central Management Store in Active Directory.

image 

Success!

From here on, you’ll need to perform some cleanup with the backend SQL database which I won’t go into the details but I’ll include the screenshots:

image

image

You’ll also need to delete the file share you created for the pool:

image 

It was definitely frustrating to not find clear documentation for the uninstall but I’m glad I got through it and I have to thank Alex Yu from Microsoft Partner Forums support for filling in the missing information/steps.

32 Responses

  1. Nice and detailed information.

    I know it is very frustrating when someone give same answer that you know.

    You have given the great information with images. Certainly, such easy-to-understand post helps readers.

    Keep sharing.

  2. This is excellent documentation. I spent a couple hours trying to figure it out before I came across your documentation.

    Thanks much.

  3. Thanks. Great to know I was able to help others who went down the same path as I did. 🙂

  4. Is there a need for the SQL Instance Namde RTC after the uninstallation? is it safe to remove?

  5. Assuming that the RTC instance of SQL server was used for the pool you've decommissioned then yes, you can safely uninstall it. If you have OCS 2007 R2 currently deployed in your environment and you're unsure about which SQL instance it's using, please confirm that it's not using the RTC instance you speak of.

  6. Hi, useful document thankyou however you made a mistake which had me stumped for a while… you need to run bootstrapper.exe /scorch option rather than just bootstrapper. I kept running bootstrapper.exe without the scorch parameter and it kept installing the roles again rather than uninstalling them!

  7. If Followed tjis document then will it remove the Lync server trace from active directory also

  8. I tried this Remove-CsConferenceDirectory -Identity 1 but I had to add -force to the end because it said something about "the command was valid but no data of the requested type was found"

  9. Thanks a lot !
    Microsoft desperately tries to cumbersome all of its products in quest for more and more money paid for their support, for their licenses and soft. Eventually they will lose – the open source will win.

  10. This is by far the best documentation regarding uninstalling LYNC on the internet – Thank you – WC

  11. To Uninstall CMS on Lync 2010 Standard pool use the following:

    Uninstall-CsDatabase -CentralManagementDatabase -SqlServerFqdn atl-sql-001.litwareinc.com

  12. agree with poster above, the /scorch parameter is required when running bootstrapper.exe, otherwise it will reinstall the roles again. please update original document.

  13. Hi, this looks like almost the exact scenario I am facing. Can you please confirm that when you removed the legacy conference directories, this had no impact on your OCS deployment?

    Thanks.

  14. Does this also work for Standard Edition ? I dont have any information in the Enterprise Pool Section….

    Thanks.

  15. Hi

    Great post, only thing I found different was that in order to completely uninstall, I had to go into add/remove and uninstall each separate component from there after completing your steps.

  16. hi,
    I am not able to publish topology after I deleted the lync 2010
    the error is it host orphaned users,but these users do not exist anymore in the active directory
    how can I force the uninstall
    pls help me
    Ghassan