Updated version of the RUPS Tool–Installing Service Packs…

by Andy Grogan on December 5, 2011 · 6 comments

in Exchange 2010 (DAG), Exchange Programming .NET, Powershell, Windows Clustering

Note: The download version of this tool has been updated to the latest released of the tool – this article is still relevant however.

Today Microsoft released Service Pack 2 for Exchange 2010 – and I thought that I would take this as an opportunity to update (again) my Roll-Up tool to support Service Packs as well as patches within DAG environments (or jump on the bandwagon Smile)

Now sometimes service packs need new Windows features to be installed – for example in the case of Service Pack 2 for Exchange your Client Access Servers need to have the IIS 6 Web-WMI tools installed as has been documented here – therefore before you being the upgrade process, if the Exchange Server that you are working on has the CAS role installed you need to open a Powershell window and execute the following commands:

Import-Module ServerManager
Add-WindowsFeature Web-WMI

Therefore I have added a new feature to the tool that allows for you to execute custom Powershell commands within the application, which I hope should cater for most situations like the above when installing a Service Pack as well as a Roll-Up – remember in the case of SP2 the above only applies to Server running the CAS role.

Using the new features

The process for installing a Service Pack on a Server which contains both the CAS role and Mailbox role where the mailbox server is a member of a DAG is the same as detailed in my original article located here, however you now also have the following option if it applies to you:

From within the “Advanced Menu” (which was added in the last update) – you will see a new menu entitled “Custom Powershell – for Service Packs” – see below

rupsSP001

In the command box you can enter in the Powershell commands that you wish to execute and then click on the “Add” button – see below

rupsSP002

Each command will be added to the script window (you can enter commands directly into the script window should you wish – remember each command needs to be on its own line), when you have finished entering in commands click on the “Execute” button, the results of the script will be displayed in the “Output” window – see below

rupsSP003

You can then return to the main application window and proceed with the installation of the Service pack in the same way that you would for a Roll-Up.

Download

As before the new version of my tool supersedes all previous versions and is available below.

UMSSetupIcon [ Exchange 2010 Update Management System – v1.5 – 1.3MB ]

Social

{ 5 comments… read them below or add one }

turbomcp December 6, 2011 at 2:16 am

thanks

Reply

technomusoc December 16, 2011 at 2:32 pm

Thanks for the handy script

Reply

Paul July 7, 2012 at 9:31 pm

Hi, getting a fatal error when trying to run the tool on one of my Exchange 2010 DAG Mailbox servers that it could not find a valid Exchange 2010 installation????

Reply

Andy Grogan July 8, 2012 at 9:45 am

Hiya Paul,

When the UMS starts up it checks for the existence of the following Registry Key;

HKLM\Software\Microsoft\ExchangeServer\v14\Setup

MsiInstallPath REGSZ

Which should have a value of something like:

C:\Program Files\Microsoft\Exchange Server\V14\

Could you check for the existence of this key on the Exchange Server where you are executing the UMS, Cheers A

Reply

Paul July 9, 2012 at 10:38 am

Hi Andy,
That reg key exists on both my mailbox DAG servers.

I tried running through the Install of SP2 manually but hit some issues with the following error:
________________________________________________________________________________________________
Mailbox Role
Failed

Error:
The following error was generated when “$error.Clear();
$name = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxUniqueName;
$dispname = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxDisplayName;
$dismbx = get-mailbox -Filter {name -eq $name} -IgnoreDefaultScope -resultSize 1;
if( $dismbx -ne $null)
{
$srvname = $dismbx.ServerName;
if( $dismbx.Database -ne $null -and $RoleFqdnOrName -like “$srvname.*” )
{
Write-ExchangeSetupLog -info “Setup DiscoverySearchMailbox Permission.”;
$mountedMdb = get-mailboxdatabase $dismbx.Database -status | where { $_.Mounted -eq $true };
if( $mountedMdb -eq $null )
{
Write-ExchangeSetupLog -info “Mounting database before stamp DiscoverySearchMailbox Permission…”;
mount-database $dismbx.Database;
}

$mountedMdb = get-mailboxdatabase $dismbx.Database -status | where { $_.Mounted -eq $true };
if( $mountedMdb -ne $null )
{
$dmRoleGroupGuid = [Microsoft.Exchange.Data.Directory.Management.RoleGroup]::DiscoveryManagementWkGuid;
$dmRoleGroup = Get-RoleGroup -Identity $dmRoleGroupGuid -DomainController $RoleDomainController -ErrorAction:SilentlyContinue;
if( $dmRoleGroup -ne $null )
{
Add-MailboxPermission $dismbx -User $dmRoleGroup.Identity -AccessRights FullAccess -DomainController $RoleDomainController -WarningAction SilentlyContinue;
}
}
}
}
” was run: “Couldn’t resolve the user or group “chorus.lan/Microsoft Exchange Security Groups/Discovery Management.” If the user or group is a foreign forest principal, you must have either a two-way trust or an outgoing trust.”.

Couldn’t resolve the user or group “chorus.lan/Microsoft Exchange Security Groups/Discovery Management.” If the user or group is a foreign forest principal, you must have either a two-way trust or an outgoing trust.

The trust relationship between the primary domain and the trusted domain failed.

Click here for help… http://technet.microsoft.com/en-US/library/ms.exch.err.default(EXCHG.141).aspx?v=14.2.247.1&e=ms.exch.err.Ex88D115&l=0&cl=cp

Elapsed Time: 00:04:42
________________________________________________________________________________________________

I believe this has something to do with my discovery mailbox setup and that I may need to run the ADPrep again although I have updated my 2 CAS servers to SP2 without issue ???

Reply

Leave a Comment

{ 1 trackback }

Previous post:

Next post: