Monday, March 3, 2014

Exchange 2010 - Outlook Client versions Report

So, I have been investigating remoting as a method of speeding up the processing of long and tedious reports. My first (and probably best) test case, is to read each of the various RPC Client Access Logs on all the Client Access Servers in my Org and generate this report.

Thursday, February 27, 2014

Quickie: Total Deleted Item Size Per DB

We are considering doubling our Deleted Item Retention period from 14 days to 28 days. I am guesstimating that this means doubling each mailboxes 'Total Deleted Items Size".  Here's the script I used to capture what the current size is for each DB.

Wednesday, February 19, 2014

WMI Failure While Uninstalling Exchange 2007

I am in the middle of decommissioning our Exchange 2007 environment and running into an odd little problem. It appears that recently the WMI repository on a number of these servers has been corrupted. Including:
  • Unable to connect to wmi control. Getting Error
  • Failed to initialize all required WMI classes.
  • Win32_Processor. WMI: Invalid namespace
  • Win32_WMISetting. WMI: Invalid namespace
  • Win32_OperationSystem. WMI: Invalid namespace
This is most noticeable as it generates failures on the BGInfo screen upon logon to the server and the Exchange Environment report fails to report the free space on the database physical drives.

A call into Microsoft provided this solution and it's worked on several of my servers.

Tuesday, February 11, 2014

Exchange Transport Abnormal Shutdown

I am working on an issue with one of my all-in-one DAG members. The Transport service keeps shutting down abnormally and Forefront is the only one reporting it.
Log Name:      Application
Source:        FSCController
Date:          2/11/2014 11:18:42 AM
Event ID:      5167
Task Category: Scan Error
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      DAG2S06.domain.local
Description:
Microsoft Forefront Protection Monitor detected abnormal EDGETRANSPORT.EXE shutdown

Thursday, February 6, 2014

Quickie - IndexOf

Working on a simple report using the scripts posted yesterday I needed a way to update objects for each person.

For example, if I build an array like:

$Array = get-mailbox  | select displayname, @{Name="DB",Expression={$_.database.tostring()}},@{Name="MailboxSize",Expression={(Get-mailboxStatistics $_.identity).totalItemSize.ToMB()}},@{Name="ActiveSyncDeviceCount",Expression={0}}

Wednesday, February 5, 2014

Series of ActiveSync Device Cleanup scripts.

Recently on looking, I found that our email servers had 4,500 mailboxes enabled for ActiveSync. Of that, we had 5,600 devices attached to our system. Yeah, on average that's 1.25 devices per person. Expand even further, I found that we had around 100 mailboxes that we no longer enabled for ActiveSync, but still had a device attached.

These two script segments run through the mailboxes and do some cleanup.

Tuesday, January 28, 2014

Copy and Paste New ActiveSync Mailbox Policy

I am working on setting up a bunch of new ActiveSync mailbox policies for my office. Each department is wanting to have an individual policy setup with their own settings. Using my previously posted script to activate mailboxes based on group membership it's rather easy to assign individual policies to mailboxes (via group name matching up to activesync mailbox policy name).

To create new polices, I have been working on this script. It takes a list of settings like:

Name :                   Test Policy (HR)
AllowNonProvisionableDevices             : False
AlphanumericDevicePasswordRequired       : False
AttachmentsEnabled                       : True
DeviceEncryptionEnabled                  : False
RequireStorageCardEncryption             : False
AllowCamera                              : True

and then creates or modifies the policy, when I simply paste the notes into the script when prompted.