Exchange server administrators, now what are you going to do?

Thought this would be a good Labor Day discussion, about how much labor an Exchange administrator performs. The short answer is, you’ll still be very needed if/when your company decides to move to Exchange online in O365. So you think you’ll lose your job when your company moves Exchange on premises content into O365 using

Connect-ExchangeOnlineNonMFA

This is another handy one to use, which allows connecting to Exchange Online easily. Similar to the O365_Logon module I have published, this function includes a prefix option. The prefix appends a value to the noun of cmdlets that allows you to run more than one remote session in the same PowerShell console that you

Get-GroupMemberCount

Need to know a member count of ALL distribution groups and e-mail enabled security groups in your organization that exports to a CSV file? Then this function is for you. Get-GroupMemberCount This function simply creates a .CSV file of all the e-mail enabled groups and current member count. May not be the most elaborate task,

Start-DAGMaintenanceMode and Stop-DAGMaintenanceMode

These two are really good functions. While I just used others’ code, I do give them credit, but to be able to ‘function these up’ is very handy. Not that I’m lazy…OK, I’m efficient, but having verb-noun at your fingertips, whenever you need to run something, is very convenient. Furthermore, I can’t tell you how

Using the same exact time with Get-Date

Many times, when using Get-Date in PowerShell, it is very easy to have start and end times for reporting processes. However, the issue is, the Get-Date cmdlet runs and obtains the time when it is run. If you want to run a specific time, say at exactly midnight every day, there is a way to

Restart-AutoDAppPool

Many times in an Exchange server, the IIS (Internet Information Services) is not the issue, but only the sub-set Autodiscover Application Pool. Therefore, once again, instead of just a one-off cmdlet against a single server, we have this function, to blast out to all Exchange servers, to restart their Autodiscover (sometimes referred to as AutoD),

Get-Date in UTC

Need to show time in UTC (Universal Time)? There is a 'method' with the Get-Date cmdlet. If you run: Get-Date | Get-Member You'll find that one of the methods is ToUniversalTime() which allows you to output the time of the local machine, converted to the UTC time. Run the code below to show how the

Get-OutlookBitValue

This little function is interesting, it will display the bit version of the Outlook client on a machine. I got this from an internal discussion, that someone needed to get an answer for a customer. I grabbed the code, functioned it up, and here it is. Now, my first thought is, why does it matter?

Restart-ExchangeIIS

One issue Exchange engineers run into from time to time, is the need to restart IIS (Internet Information Services). Here is a simple way to restart IIS on all Exchange servers in the organization: Restart-ExchangeIIS I’ve considered scoping this to say just a few servers, but then, that’s easy to remote into a machine and

Restart-IISOnServers

Added this to the MO_Module to remote in and restart just the IIS service on a single computer or a list of computers. Easy enough to do without a function, but I added some logic and Write-Verbose information to help the person running the command to see the content easier and quick. This will restart