Pages

Monday, 2 December 2013

Upgrade Groups - Universal Groups

Working on site with a customer I was asked if there was a way to upgrade their ‘Distribution Lists’ to be ‘Universal’?

This would be a simple task with a bit of PowerShell I thought…

After a couple of checks with the AD Management PowerShell cmdlets, I decided to use the Quest ActiveRoles Management Shell for Active Directory, I will explain why I used the Quest pack over the standard AD Management cmdlets.

First Stage: Add the Quest PowerShell to your PowerShell command window or script editor (I use the the PowerShell ISE, it makes things a lot easier).

## Add Quest Activeroles AD management
Add-PSSnapin quest.activeroles.admanagement

Second Stage: Create a collection of groups that isn’t a member of any other group (This is the first reason for using Quest), and then upgrade these to ‘Universal’

## Get all groups that are not a member of another group
$DL = Get-QADGroup -SizeLimit 0 | where {($_.PrimarySMTPAddress -ne $Null) -and ($_.MemberOf.count -eq 0)}

ForEach ($member in $DL)
{
    Set-QADGroup $Member -GroupScope Universal -ErrorAction Continue
}

Note: You will see that I have a filter ‘$_.PrimarySMTPAddress -ne $Null’  this was put into the script to get Distribution Lists only, as the Quest Get-QADGroup will get both Distribution and Security groups. This can be simply removed and replaced with ‘where {$_.MemberOf.count -eq 0}’ if you want to upgrade all groups.

I had to do this with my customer because even thou they had separated their Distribution and Security groups, they had a over time created the odd Security group nested into a Distribution group.

Third Stage: Get the ‘Members Of’ the collection from second stage, and put them in an array.

## Get the members of the groups in $DL
$Nest = @()
ForEach ($member in $DL)
{
       $membersof = Get-QADGroupMember -SizeLimit 0 $member -Indirect | where {$_.GroupScope -eq "Global"}
       foreach ($membersofmembersof in $membersof)
       {
              if ($Nest -notcontains $Membersofmembersof)
              {
                     $Nest += $Membersofmembersof
              }
       }
}

Note: This is the other reason I used the Quest cmdlets, as you will see on the cmdlet Get-QADGroupMember I've used the switch –Indirect, this means it will get the members of all the nested groups including the groups that nested to those groups, this has been tested to 9 levels of nesting.

Fourth Stage: Using the array from third stage upgrade the groups to ‘Universal’

## Upgrade groups in $nest
ForEach ($member in $Nest)
{
    Set-QADGroup $Member -GroupScope Universal -ErrorAction Continue
}

Note: this will loop round the array upgrading the groups to ‘Universal’, if gets a group that it can’t upgrade because its a member of a 'Global’ group you will see a message appear:

Set-QADGroup : The server is unwilling to process the request

You will simply need to repeat stage four, until all groups have been upgraded.

This is a working script and maybe updated over time, I’ll let you know of any updates done to the script.

Download Full Script
Quest ActiveRoles Management for Active Directory – Link

Disclaimer: All scripts and other PowerShell references on this blog are offered "as is" with no warranty.  While these scripts are tested and working in my environment, it is recommended that you test these scripts in a test environment before using in your production environment.

Wednesday, 27 November 2013

Exchange Server 2013 Cumulative Update 3

With the Exchange Team announcement last week that Exchange 2013 Service Pack 1 will be coming in early 2014, this is essentially CU4, you knew CU3 announcement was due at any point.
That point was Monday, this cumulative update brings a number of fixes found KB2892464.

This CU can be applied directly to RTM version of 2013, however the Cumulative Update 3 includes Exchange related updates to Active Directory schema and configuration changes.

It is also recommended to prevent installation issues you should ensure that the Windows PowerShell Script Execution Policy is set to “Unrestricted” on the server being upgraded or installed.

To verify the policy settings, run the Get-ExecutionPolicy cmdlet from PowerShell on the machine being upgraded, remember to reset once the update has been applied.

The Exchange Team Blog – Source
Description of Cumulative Update 3 for Exchange Server 2013 – KB2892464
Cumulative Update 3 for Exchange Server 2013 (KB2892464) – Download

Saturday, 23 November 2013

Exchange Server 2013 Service Pack 1 Coming in Early 2014

The Microsoft Exchange Server team has announced the upcoming availability of Service Pack 1 for Exchange Server 2013, scheduled for release in “early 2014″.
Service Pack 1 will include:
  • Windows 2012 R2 Support
  • S/MIME support for OWA
  • Edge Transport Role
More details to be released once the Service Pack release date is confirmed.
The Exchange team also said that Service Pack 1 is essentially CU4. Considering we are at CU2 right now that leaves open the question of when CU3 will be released. The Exchange Team Blog – Source

Wednesday, 28 August 2013

Re-Release of Security Update MS13-061

The Exchange Team have re-released the Security Update MS13-061 for Exchange 2013.
Download links for MS13-061:
Read the Q & A on the Exchange Team Blog, for the correct method to apply the Security Update.
The Exchange Team Blog – Source

Monday, 19 August 2013

Road to MCSE Messaging…

To gain a MCSE Messaging, I will first need a MCSA. Which at first glance meant three server exams (410,411 and 412) not having done any server exams was not looking forward to doing these.

Then I noticed on the Microsoft webpage that I’m able to upgrade my MCTIP: Enterprise Messaging Administrator 2010 to MCSA: Windows Server 2012 with a single upgrade exam 70-417.

The content of 70-417 covers the other three exams (410,411 and 412) but doing a single exam rather than three is better, having worked with Windows Server and AD since 2003, just not done the exams.

So first step to MCSE Messaging will be Exam 70-417, just need to find time get my head into a book for some study…

Thursday, 15 August 2013

Further update on Security Update MS13-061

The Exchange Team have release further information on Security Update MS13-061.

Recommendation:

If you have already installed MS13-061 security update on Exchange 2013 servers, follow steps in KB2879739 to resolve the issue.

IF you haven't installed MS13-061 security update on Exchange 2013 servers, It's recommended not to do so. To mitigate the security vulnerability follow the workaround steps in Microsoft Security Bulletin MS13-061.

The Exchange Team Blog - Source

Wednesday, 14 August 2013

Security Fix MS13-061

The Security Bulletin MS13-061 released by Microsoft causes the content index on Exchange 2013 to fail.

Microsoft have posted a KB article how to resolve this - KB2879739

Exchange 2010 SP3 Update Rollup 2


The Exchange Team has released update rollup 2 for Exchange 2010 SP3.

This update rollup does not apply to Exchange Server 2010 RTM, SP1 or SP2. You should have at least Exchange 2010 SP3 running.

Description of Update Rollup 2

The Exchange Team also released:
Important: If you have previously deployed CU2, you must ensure you are running build 712.24 in order to apply the security update. For more information about build 712.24, please see Now Available: UpdatedRelease of Exchange 2013 RTM CU2.

The Exchange Team Blog - Source