Archive for the 'Exchange 2007' Category

Exchange 2003 PowerPack Updated

If you manage your Exch 2003 with PowerGUI make sure you upgrade to the latest version of the PowerPack which Jonathan Medd has made available.

It adds a nice Database Whitespace report added, and more importantly autoupdate capabilities – so from now on getting new patches and features becomes way easier.

Exchange Server 2003 Database Whitespace report

Get the PowerPack here or read more in Jonathan’s blog here.

Blog series on PowerGUI, PowerShell and Exchange 2007

Oz is doing a great series on managing Exchange 2007 with PowerShell and PowerGUI. Within last week he has posted quite a few really useful scripts which should be in every Exchange administrator’s toolbox – check them out:

And Oz still keeps doing this almost every single day! So please go to the blog and subscribe to the updates! 🙂

Tags: , , ,

Evan Dodds to present at TEC 2009

Evan Dodds, Senior Program Manager, Microsoft Just saw that Evan Dodds is on the Exchange track agenda with his Microsoft Windows PowerShell Scripting for Microsoft Exchange Server session.

Evan’s session are must-attend if you are managing Exchange and are interested in PowerShell. He is extremely knowledgeable (no surprise here – he is one of the key guys designing Exchange PowerShell implementation ;)) and just a great speaker.

This is in addition to a few other PowerShell sessions at TEC which I reported earlier.

Registration and more details can obviously be found at the conference web site.

Tags: , , , ,

PowerShell at DEC 2009

Looks like agenda for DEC 2009 (March 22-25) is almost settled by now – and it does have a few PowerShell sessions in there: Darren Mar-Elia (who gave the PowerShell world GPO management!) and Brian Desmond (another well-known AD MVP) are both going to present various tips and tricks on AD management with PowerShell.

I love DEC (DEC 2007 was one of the first conferences where AD cmdlets were first demoed by Richard in his PowerShell talk). If you are in AD/Identity Management world this is the conference to attend. The content is very deep and the peers you meet are very knowledgeable. Just check out the speaker line-up and the agenda so far.

This year they are also adding a whole new subconference on Exchange and messaging – hence the name change from DEC to TEC – which means more agenda conflicts if you are into both. 😉 Rob Allen is giving a PowerShell talk over there.

For those of us preferring Berlin to Vegas – there’s TEC Europe in September (obviously next September).

The early bird discounts seem to still apply. Register now and see you at the event!

Tags: , , , , , ,

Find and fix broken inheritance

Broken permissions inheritance can be a source of multiple issues – with PowerShell you can get such issues located and fixed with an easy oneliner.

Getting security inheritance blocked is easy – locating and setting it back can be hard. One big customer of ours once had most of their mail transport paralyzed with a branch administrator clearing the inherit permissions checkbox he thought should not have been there. Nicolas is reporting similar issues with Exchange 2007 deployments.

Seeing whether an AD object has permissions inheritance blocked is as easy as checking the object’s DirectoryEntry.psbase.ObjectSecurity.AreAccessRulesProtected property.

So for example, to get a list of all users in the domain who has inheritance off you just need to run:

Get-QADUser -SizeLimit 0 | where {$_.DirectoryEntry.psbase.ObjectSecurity.AreAccessRulesProtected}

I am using -SizeLimit 0 so I retrieve all users and not just the default 1000.

Fixing inheritance is even easier with the new Set-QADObjectSecurity cmdlet introduced in AD cmdlets 1.1.

So if you want to fix inheritance for all AD users (caution: you might want to just get the list of the accounts first using the command above to make sure you do not “fix” legitimate exceptions) you just need to pipe the collection into Set-QADObjectSecurity -UnlockInheritance:

Get-QADUser -SizeLimit 0 | where {$_.DirectoryEntry.psbase.ObjectSecurity.AreAccessRulesProtected} | Set-QADObjectSecurity -UnlockInheritance


Tags: , , , , , , , , , ,

PowerShell Adoption by Platform

I have always wondered how much is PowerShell adopted across various administrative tasks. Now I finally found the stats.
Windows Server and Active Directory are far ahead, with Windows Desktop being a runner-up, Exchange on distant 3rd and everything else far behind.

PowerShell use survey statistics by application and platform

My take on the data:

  • Server and AD management tasks are far ahead of everything else. Too bad the survey didn’t distinguish between the two.
  • It is a bit surprising the desktops took number 2. My guess is that respondents just meant using PowerShell on their desktop for their personal needs. Despite existing 3rd-party solutions I doubt PowerShell v1 can be used that widely for mass desktop management. I think we will need to wait for v2 and remoting to see this taking off.
  • Not surprisingly almost a 3rd of respondents are not using PowerShell for admin tasks at all. After all, there is some learning curve involved here and PowerShell is not yet available for any platform.
  • Almost a quarter of PowerShell users employ it for Exchange 2007. A very good result! After all, Exchange 2007 was released not that long ago, and has just got its SP1.
  • In general, it looks like platforms with no cmdlets available don’t really get PowerShell fans. .NET can be used to manage SQL and SharePoint – but look how much behind are they! Exchange 2003 can actually be managed with PowerShell, but there are no native cmdlets built-in – and as result PowerShell use is just 1.5%. Compare that to 23.4% Exchange 2007 got!
  • I wonder why Operations Manager is relatively low. Less adopted than Exchange 2007? OpsMgr admins less willing to script? OpsMgr tasks not really requiring scripting and command-line use?

The survey was carried out by Quest Software and took place in the very end of December 2007 and early January 2008. It was promoted at, this blog, and a few other PowerShell blogs. About 200 people responded. The exact question was: “Select the systems you are currently managing with Windows PowerShell“.

Tags: , , , , , , ,

MCS Ireland using PowerGUI

Looks like Microsoft Consulting Services in Ireland started using PowerGUI for Exchange 2007 management. Check this out: Exchange 2007 Powershell Answer –The PowerGUI

Tags: , , , ,

Presenting at OCS Launch in Moscow

I am presenting at the Office Communications Server 2007 launch in Moscow today. The topic is: Unified Reporting and Management for your Unified Communications – so there will definitely be plenty of PowerShell in the Exchange part of the talk.

By the way, Jeff Raikes is coming to personally do the keynote. This guy must be traveling a lot…

Tags: , ,

Exchange cmdlets or PowerShell issue?

It looks like there are more and more ForEach-related topics coming out of blogosphere. This time I came across this post by Matthew Byrd on Exchange PowerShell behavior. In the post he compares two versions of Exchange 2007 one-liners: one with ForEach-Object and the other with direct pipelining. He then notices that the one with ForEach-Object is much faster:

The reason for this is simple and is tied into how PowerShell executes commands that are pipelined together. PowerShell executes the commands in a linear manner. So it will execute completely the first command in then pass the whole output to the next command in the pipeline. That means that if you have 30,000 mailboxes in your org and you run the shorter command you must enumerate all 30,000 mailbox objects before you pass it down the pipeline.

I am not sure this is PowerShell behavior really. Please correct me if I am wrong but I was under impression that if the left-hand cmdlet is using WriteObject(object, true) this cmdlet sends objects into the pipeline one at a time, and if the right-hand side processes the objects in ProcessRecord method, then all processing should be happening asynchronously and not after the first cmdlet is fully done.

So apparently something is not working “as designed” and either Exchange cmdlets are not using the interfaces right, or PowerShell v1 is not working “as advertised” (and using some undocumented “secret hooks” internally to make out-default, out-list, out-table, foreach-object, and other built-in cmdlets work with pipeline correctly – one object at a time).

Which actually does not change the outcome I guess: with Exchange 2007 ForEach-Object can be much more efficient than direct pipelining. Check your script performance – PowerShell gives you tons of ways to do the same thing and, as Matthew reports, some ways can be better than others!

But still, if you know whose issue this is please leave a comment. Maybe we need to post another CR to Microsoft Connect here…

Tags: , , , , , ,

Exchange 2007 PowerGUI Tutorials

Henrik Walther has just published his part 2 on managing Exchange 2007 with PowerGUI at

In part 2 he goes through managing public folders, setting permissions, provisioning mailboxes from csv files, reporting, as well as extending the tool.

(Too bad these were written before we extended the pack to cover all the functionality missing in the native Exchange Management Console.)

Henrik’s posts are good step-by-step tutorials with lots of screenshots and easy to follow. Highly recommended!

Tags: , , , , ,

My Recent Tweets


The posts on this blog are provided “as is” with no warranties and confer no rights. The opinions expressed on this site are mine and mine alone, and do not necessarily represent those of my employer - WSO2 or anyone else for that matter. All trademarks acknowledged.

© 2007-2014 Dmitry Sotnikov

June 2021

%d bloggers like this: