About Me
I'm Steve Goodman, and I'm happily married to my wife Lisa, have a little girl, Isabelle, and live in Warwickshire, UK.
I currently work as a Technical Architect at one of the UK's leading IT services providers, working on the design and delivery of Microsoft and VMware solutions for organisations across the UK.
I have over 12 years worth of commercial experience and hold industry certifications including MCT, MCITP (EMA Exchange 2007, 2010 and Enterprise Admin), MCSE, MCSA, MCTS, VMware VCP 3+4 and Sun Solaris SCSA. I also code PowerShell, C#, Java, PHP, typically for system infrastructure automation, management and bespoke user interfaces.
Outside of the day job I'm passionate about technology and unashamed to be a bit of a geek. In the past I've been featured in a number of UK magazines (e.g Custom PC, Gigahertz Magazine) for my work in Car Computing and at the time helped to organise the first nationwide Car PC shows. Nowadays my passion goes into learning and helping others with Exchange Server, Office 365 and PowerShell.
My views and blog posts are my own and not the opinion of my employer.
If you'd like to contact me my email address is steve@goodman.net and you can find me on Twitter as stevegoodman
![]()
![]()



May 7th, 2011 - 00:51
Can you send me the Balance script that uses PrimarySMTPAddress as well? The names of some of our OUs really mess with the script.
I really appreciate your script! Makes adding and filling new DBs a breeze!
May 13th, 2011 - 17:46
Hi Jay,
Just seen your comment here. As you know I’ve emailed you the script
Steve
May 12th, 2011 - 21:54
Hi Steve!
My name is Alexander Alwan and I’m working for IT-company is called Bolero AB. We using Exchange 2003 server like our E-mail server. I would like to learn Exchange 2010 and replace our old Exchange server, so I just installed Windows SBS 2011 including with Exchange 2010 SP1 like a test server; I found the instruction in your homepage about how can I Import/export mailbox to PST file and it is great I had tested all the steps and everything works fine but only one things I get the problem with, it is when I run “Performing Mass Exports as a scheduled task”. I get error message when I run Command script” MassExport.cmd”
The term ‘.\MassExport.ps1′ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:122
+ . ‘c:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1′; Connect-ExchangeServer -auto; .\MassExport
.ps1 <<<<
+ CategoryInfo : ObjectNotFound: (.\MassExport.ps1:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
I don’t know if I did something wrong or maybe I should have to install some Exchange tools or maybe I Should move these two files to special folder.
Best regards
Alexander
May 13th, 2011 - 17:37
Hiya,
You may need to specified the directory to start the program in (which should be the directory the script is contained in) when scheduling the task – this should ensure that Powershell finds the script when it launches.
Let me know if that works.
Steve
May 16th, 2011 - 16:00
Hi Steve!
Sorry that it takes a while before I respond to your message I was very busy. It still does not works I change the path directory on CMD file:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command “. ‘c:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1′; Connect-ExchangeServer -auto; C:\MassExport1\MassExport.ps1″
But I still get the same error message.
/Alex
June 8th, 2011 - 16:22
Did you ever update your script “Generate-DBBalanceScript.ps1″ based on mailbox size and not count? I have tried editing your script but I am not even close
Cheers,
Brian
June 8th, 2011 - 16:35
Funnily enough you’re the second person to ask me today, I will have to bump it up my to-do list. I’ll pop you an update when I do.
Steve
June 8th, 2011 - 20:18
sweet.. keep up the outstanding work
June 27th, 2011 - 15:49
Dear Steve,
you are great guy and awesome. Already enjoy, when i read your Articles.
Keep it up and I hope you get MVP title.
best regards
June 27th, 2011 - 18:22
Thanks Mashti, I appreciate your kind words!
Steve
July 2nd, 2011 - 23:00
Hi Steve, I have just come across some of your Exchange Scripts and I am really impressed by them..
I would like some assistance with a PS script that I have been tasked with..
We will be implementing a Mailbox Retention Policy for all our users (excluding Support Mailboxes, Archives and Journal Mailboxes)
This is what I have so far..
Get-Mailbox -Server “servername” -ResultSize unlimited |Select-Object alias |
ForEach-Object{Get-MailboxFolderStatistics -Identity $_.alias |
Select-Object Identity,ItemsInFolder,FolderSize} |
Export-Csv D:\Installs\Scripts\Reports\Mailbox-FolderStats.csv -notype
An extract from the csv file
“sm_mrt\”,”0″,”0B”
“sm_mrt\Calendar”,”5″,”5250B”
“sm_mrt\Contacts”,”0″,”0B”
“sm_mrt\Deleted Items”,”0″,”0B”
“sm_mrt\Drafts”,”0″,”0B”
“sm_mrt\Inbox”,”7″,”13762B”
“sm_mrt\Inbox\User Account Changed”,”0″,”0B”
“sm_mrt\Journal”,”0″,”0B”
“sm_mrt\Junk E-Mail”,”0″,”0B”
“sm_mrt\Managed Folders”,”0″,”0B”
“sm_mrt\Managed Folders\Mail Retention Policy”,”0″,”0B”
“sm_mrt\Managed Folders\Mail Retention Policy\Deleted Items”,”8″,”18550B”
“sm_mrt\Managed Folders\Mail Retention Policy\Inbox”,”3823″,”9133367B”
“sm_mrt\Managed Folders\Mail Retention Policy\Inbox\User Account Changed”,”225″,”754148B”
“sm_mrt\Managed Folders\Mail Retention Policy\Sent Items”,”14″,”31889B”
“sm_mrt\Notes”,”0″,”0B”
“sm_mrt\Outbox”,”0″,”0B”
“sm_mrt\RSS Feeds”,”0″,”0B”
“sm_mrt\Sent Items”,”0″,”0B”
“sm_mrt\Tasks”,”0″,”0B”
I still need to filter the result to exclude some mailboxes (based on Description=Support Mailbox)
From the generated csv, I would like to report on on the Managed Folders Only
Mail Retention Policy (# Items |, FolderandSubFolder Size (MB))
–> Inbox (# Items |, FolderandSubFolder Size (MB))
–>Sent Items (# Items |, FolderandSubFolder Size (MB))
–> Deleted Items (# Items |, FolderandSubFolder Size (MB))
I have tried using Get-MailboxFolderStatistics but have been getting stuck at the reporting aspect and getting a proper Display Name.
From the generated csv, I would like to send an email (html) to each user with the Mailbox Retention Policy stats..
Dear User
Your Mailbox Retention Policy for July 2011 is follows:
Mail Retention Policy (100 Items |, FolderandSubFolder Size (100MB))
–> Inbox (50 Items |, FolderandSubFolder Size ( 55 MB))
–>Sent Items (30 Items |, FolderandSubFolder Size ( 40MB))
–> Deleted Items (20 Items |, FolderandSubFolder Size (5 MB))
I hope you can shed some light..
Regards,
Sean
December 19th, 2011 - 22:03
Hi,
I have general question, I have a shared mailbox example: Communication created on Exchange 2010 SP1. I just create a group for that mailbox and add 5 users to the group. Then I use Powershell script to add permissions on the shared mailbox like -AccessRights Fullaccess -InheritanceType all and -Extendedrights “Send As” -InheritanceType all.
All 5 Users can access the mailbox and they can send a email from the mailbox. The real question if one of the user X send a email from the mailbox Communication, can I see somewhere else wich user send the mail from the Communication mailbox. (like powershell dump, Messagetracklog, ect..) So that I can trigger that specify email wich user has send the mail out the name of Communication shared mailbox. So that I can say User 1, 2, etc.. send the email from the Communication mailbox.
Does anybody knows how I can find that to trigger the mail with the userID, or is this not possible to see wich user send the email from the shared mailbox.
Kind regards,
Hakan91
January 1st, 2012 - 12:00
A great looking site that I will be studying in more detail over the next few weeks. Excellent work.
February 1st, 2012 - 18:45
Thanks Rob
Steve
January 5th, 2012 - 17:30
Hi Steve,
The script was very helpful. When I opened the csv file, there are many N/A listed as the iOS version. I have several User Agent numbers that are not listed. Could you point me in the right direction to obtain the rest?
Thank you.
January 5th, 2012 - 17:32
Sorry, this is in reference to the Exporting Echabge ActiveSync for iOS devices.
February 1st, 2012 - 18:41
Hi Ray,
If you let me know the User Agent numbers, I’ll update the script accordingly.
Steve
January 19th, 2012 - 06:34
Chaps,
I’m working as senior consultant, and now working in Migration project from Notes to Exchange 2010.
We had a issue, that accidentally we migrate users mailboxes twice as it duplicated his emails in his mailboxes. I’m trying to sort it out. If you could help me with VB / PS script to find the duplicate emails in outlook, would be great helpful
Thanks in Advance
_Selva
February 1st, 2012 - 18:32
Hi Selva,
Thanks for the comment – would love to help, but I simply don’t have the time right now, but will consider it in the future for the blog (though that will probably be too late for you)
Steve
February 1st, 2012 - 18:34
Hi Steve,
I’ve got a free verison of a tool, which will actually do this.
If you wish, i will share it.
Cheers,
Selva
January 20th, 2012 - 06:57
Hi Steve,
My name is Roger from Shanghai, China. Firstly I gotta say I love your site, I started to learn powershell on my Exchange daily work from your environment script. And then I started to learn powershell script, write and use it on my production environment. Now I have script to monitor database growth, email traffic, database mount status, Monitor queue, etc. They are working very well, people love it. I would like to say thank you and I know my code is working but not so go good. I still have long way to go.
Roger
February 1st, 2012 - 18:23
Hi Roger, if you start a blog yourself to share your alterations, let me know
Steve
February 3rd, 2012 - 21:50
Hey Steve. Love the concept behind the e2k10haproxy VM. Will it work with a multi-role Exchange 2010 SP1 servers in a DAG?
I’m having trouble getting the E2K10 servers to show “UP” on the status screen. I’ve opened up all the necessary firewall ports and hard coded the RPC and OAB ports according to Technet. I’m using it on my private 192.168.1.x network behind a Linksys router that has port forwarding configured. There is also a Windows RRAS servers providing LAN routing between two AD sites but at this point I would be happy just getting it to work on the primary site. I hope you don’t mind but I was wondering if you could answer the following configuration related questions:
1. Should the default gateway on the proxy point to my Linksys router or my RRAS router?
2. Should the DNS address point to my domain controller which is running DNS or my Linksys router that uses my ISP’s name servers?
Thanks man!
Hunter