About Us

The Philadelphia Area Exchange Server User Group strives to create a community for IT Professionals for knowledge sharing, professional networking, and increasing one’s knowledge of Microsoft Exchange Server. The group membership is open to all IT professionals engaged in designing, deploying and maintaining Microsoft Exchange platform and is not limited to any geographic region.

Microsoft Exchange Online–Meeting on September 09

We heard you loud and clear. Many have been asking what does Microsoft Online offer? What does it mean? How do I upgrade my skills for new type of computing that is gaining popularity rapidly.

Well, we are answering the questions by dedicating this meeting specifically to Microsoft Exchange Online offering. We will discuss details, answer questions and demo BPOS-S deployment live!

While, we are deviating from our standard meeting schedule (second Tuesday of the month), we are sure you will enjoy the content being covered and greatly benefit from it.

We highly recommend you attend in person if possible. You can RSVP here.

We meet at the Microsoft Malvern office (45 Liberty Blvd, Malvern, PA 19355). The Microsoft office is located on second floor.

When you arrive, please inform security that you are attending the User Group event and they will grant you access to the building.

You can also call Bhargav's cell (570) 709-9046 or Chad's cell (610) 973-7123 to gain access if needed.

Remote users can join using Live Meeting at URL http://bit.ly/phillyexugmonthly. If you do not have Live Meeting client installed, you can install it from http://bit.ly/livemeetingclient.

We look forward to your valued participation in this very exciting meeting.

Monthly Meeting - September - Cloud Computing

09/09/2010 6:00 pm
09/09/2010 8:00 pm
Etc/GMT-4

We heard you loud and clear. Many have been asking what does Microsoft Online offer? What does it mean? How do I upgrade my skills for new type of computing that is gaining popularity rapidly. Well, we are answering the questions by dedicating this meeting specifically to Microsoft Exchange Online offering. We will discuss details, answer questions and demo BPOS-S deployment live! While, we are deviating from our standard meeting schedule (second Tuesday of the month), we are sure you will enjoy the content being covered and greatly benefit from it. We highly recommend you attend in person if possible. We meet at the Microsoft Malvern office (45 Liberty Blvd, Malvern, PA 19355). The Microsoft office is located on second floor. When you arrive, please inform security that you are attending the User Group event and they will grant you access to the building. You can also call Bhargav's cell (570) 709-9046 or Chad's cell (610) 973-7123 to gain access if needed. Remote users can join using Live Meeting at URL http://bit.ly/phillyexugmonthly. If you do not have Live Meeting client installed, you can install it from http://bit.ly/livemeetingclient. We look forward to your valued participation in this very exciting meeting.

Monthly Meeting–August 10

The August meeting is coming up soon.

We will be discussing Exchange 2010 Reliability workbooks form the Microsoft Operations Framework. We will also discuss metrics. Metrics can be a powerful tool to show how sound your infrastructure is and can be used to forecast future growth or spot potential issues.

We are sure the content we cover has been providing you valuable insight into the features, management and operations of Exchange Server versions ranging from 2003 to 2010. Not to mention a great opportunity to network with your peers.

We continue to deliver on our promise and hope you will continue to support us by participating actively in the User Group meetings and forums.

If you haven’t registered already, please do so at http://www.phillyexug.org/2010/06/08/august-10-2010-user-group-meeting.

 
Registration isn’t required to attend in person or remotely, however it greatly help us to organize meetings more efficiently. Live meeting link (if you chose to attend remotely) is provided on the page linked above.

We look forward see you at upcoming meeting.

Exchange 2003 EAS info

The other day my boss came over and asked me how many users are using Exchange Active Sync (EAS) for mobile email. Since we are in the process of moving to Exchange 2010 I tried to see if he could wait a few months since Get-ActiveSyncDevice or Get-ActiveSyncDeviceStatistics would have the info I was looking for, but he wanted it by the end of the week, so I got to work. 

 
My first thoughts were to query AD for users enabled to use EAS with a LDAP query for something like "msExchOmaAdminWirelessEnable=*" but the problem with this is it does not tell me who is actually using the service or what devices they have. As far as I could tell the only place the data was available was in the IIS logs on our Exchange2003 Front-end OWA servers. I checked a sample log file, I was in luck it contained the info I needed.
2010-06-25 00:00:00 W3SVC1 OWAServerName x.x.x.x POST /Microsoft-Server-ActiveSync User=UserSAMAccountName&DeviceId=ApplXXXXXXXXXX&DeviceType=iPad&Cmd=MoveItems&Log=V4TNASNC:0A0C0D0FS:0A0C0D0SP:1C7I18230S462834R0S0L0H0P 443 domain\samaccountname x.x.x.x HTTP/1.1 Apple-iPad/702.367 - - ourwebmailaddress m 200 0 0 436 542 156
Note: I have removed my company specific info like User Names, server names and, IP Addresses
 
You can see the Users SAMAccountName, their DeviceID and DeviceType . Since we want to extract text from within a string the perfect tool for this is regular expression. We can use PowerShell to extract this info from a string with the -match " User=(.+)&DeviceID=(.+)&DeviceType=(.+)&Cmd" I won't get into the details of regular expression as it could be a whole series of posts by itself, but more details can be found all via your favorite search engine and at http://regexlib.com/
 
My environment generates about a 1GB of logs per day per OWA server (we have 5 OWA Servers and keep several weeks of IIS logs!) so I did not want to spend the time searching through all the files. I figured if they were actively using their EAS device then it should appear with in a few days of logs at least once. I copied a few days of IIS logs from each server locally to my workstation. If you want to search the logs on the servers with out copying them locally first you can set the path to search all the servers IIS log directories by using:
 
$searchdir = "\\Server1\c$\WINDOWS\system32\LogFiles\W3SVC1\", "\\Server2\c$\WINDOWS\system32\LogFiles\W3SVC1\"
 
My first attempt stored all matches of the regex expression in an array but I quickly exhausted the 8GB of RAM I have installed in my workstation since each device is continually talking with our webmail servers generating lines in the log files. A better approach is to use a PowerShell Hash Table; in VBS these were called Dictionary Objects. You may have also heard them referred to as Associative Arrays. An excellent primer on Hash Tables is available at http://technet.microsoft.com/en-us/library/ee692803.aspx  The main strength is that a Hash Tables uses key-value pairs where the key has to be unique. The EAS DeviceId is a unique value per handheld. All we need to do is store the DeviceID as the key and the value as who it belongs to and what type it is.
 
The file that is set by $outfile generates a CSV file that is easily opened by Excel so you can gather any statics from it that you need.

 

############################################################################# 
# Filename: CollectEASInfo.ps1 
# Searches Exchange 2003 IIS log files for EAS user and Device info and 
#  writes it to a CSV
# 
# Created by Chad Manzer
#   phillyexug.org
#
# Version 1.0 
#           (7/15/2009) - CM Inital relase
#
# DISCLAIMER 
# ========== 
# THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE  
# RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER. 
#############################################################################  

$startTime = Get-Date
$outfile = "e:\APPL.csv" #Where to save the results
$searchdir = "e:\OWAIIS\" #Directories to search for Exchange 2003 IIS logs
$Files = get-childitem $searchdir |%{$_.FullName}
[Hashtable]$Hash = @{} #defining the Hash table for use later

#Write-Progress -activity "Processing" -status "Getting content of the files..."
Get-Content $Files|%{
	if ($_ -match " User=(.+)&DeviceID=(.+)&DeviceType=(.+)&Cmd")
	{
		$User = $Matches[1]
		$DeviceID = $Matches[2]
		$DeviceType = $Matches[3]
		
		#if the item is already in the hash table do not try to add it again
		if ($Hash.ContainsKey("$DeviceID,") -eq $False)
			# adding commas between items so we can export as a CSV later on
			{$Hash.Add("$DeviceID,", "$User, $DeviceType")}
		
		#Show some type of progress, it drives me nuts staring at a blinking cursor
		if ($i -lt 100) 
			{$i++
			Write-Progress -activity "Reading in Files" -status "User: $User DeviceType $DeviceType DeviceID $DeviceID" -percentcomplete $i
			}
		else {$i=0}
	}
}

#Write the hash file to out output file
Write-Progress -activity "Processing" -status "Writing to $outfile "
$Hash | out-file $outfile -Encoding ascii

#Clean up the output file since the hash table add's extra spaces in the csv we don't need 
Write-Progress -activity "Processing" -status "Cleaning up output file $outfile "
(Get-Content $outfile) -replace ' ','' | Set-Content $outfile

#All done.
Write-Progress -Activity "Processing" -Completed -Status "All done."
Write-Host "Output file is located at: $outfile"
$Endtime = Get-Date
$RunTime = $Endtime - $startTime
Write-Host "Run time: "
$RunTime

July 13, 2010 User Group Meeting Video

We would all like to thank Ed Wilson (The Scripting Guy) for sharing PowerShell best practices with all of us.  We have the video of the presentation up for anyone who may have missed it or would like to refer back to it. Enjoy.

If you would like to view this on your mobile device, for watching on the go, you can go to the viemo page at http://vimeo.com/13395119


PowerShell Best Practices by Ed Wilson on July 13

As many of you know, PowerShell is not only a powerful language that changes how you script and automate, it is essential when it comes to managing Exchange 2007, Exchange 2010 and if you are not familiar with PowerShell, you can't ignore it anymore.

Since PowerShell is such a key for Exchange Administrators, we would like to invite Ed Wilson (The Scripting Guy) to share best practices with us in July 13th session.

This is absolutely amazing opportunity for the User Group members but before we extend our invite to Ed we want to make sure we will have good participation as after all not making best of the session like Ed's is terrible thing to do.

We have opened a poll to guage your interest in the session and we invite you to please take the poll or reply to us using contact form so we can decide in coming weeks if Ed should be invited to share valuable insight on PowerShell with us in July 13th meeting.

We look forward to your valuable participation.

Creating or Renewing a Client Access Server Certificate

 
Weather you have a large environment or a small environment you will likely have to renew your Client Access Server (CAS) certificates someday. If it is a lab you may be doing this a lot or in production maybe every year or two. But if you are anything like me, and I know I am, then you may be lazy and like to script everything out. Not only does this help to make sure you are constant but who know if you will remember how to renew your CAS certs in a few years.
 

Start by opening EMS (Exchange Management Shell.) Run the following commands substituting the correct information for your environment.

$Request = New-ExchangeCertificate -FriendlyName 'Exchange2010Webmail ' -GenerateRequest -PrivateKeyExportable $true -KeySize '2048' -SubjectName 'C=US,S="Pennsylvania",L="Philadelphia",O="My Test Lab",OU=".",CN=webmail.mydomain.com' -DomainName 'webmail.mydomain.com','autodiscover.mydomain.com','cas-site1.mydomain.com','cas-site2.mydomain.com' -Server 'exchlabcas01'
 
Change the friendly name to whatever makes sense to you. Verify that the subject alternate names are correct for your environment and that you do not need to add or remove any. In this example we will have all the CAS servers part of 2 CAS arrays, CAS-site1 and CAS-site2 to simplify we will be using the same certificate on all the servers, utlizing Aubject Alternate Names or SAN's. This creates the Certificate request on the server specified with the -server (in this case exchlabcas01) and assigns it to the $Request variable. Then create the certificate request file to be submitted to an offline CA
 

New face of our user group…

Since we launched our user group in November, out first home -  www.ehlougphila.com used to serve us for our communications needs but was designed just before launch with lack of vision and time.

We have been working on vision and new design ever since. The goals we discussed in January meetings were to create a site that is flexible and user friendly. We wanted the site to be able to provide:

  • Switch to reliable hosting company
  • Dynamically updated content that is relevant to the group
  • Provide a platform where members can come together and discuss their concerns/issues and help each other out
  • Provide users with single portal to access events and allow signups
  • Use existing IDs for signups – LiveID or OpenID

Based on the vision and functionality/features we discussed, we introduce you to the new identity of out user group – http://www.phillyexug.org.

Here’s what we have done to make the portal more useful and we will be looking to our members – you – to make it even better by incorporating your feedback in improving it further.

  • Moved to different, more reliable hosting company
  • Live ID signups – allows members to maintain their existing identity and reduces duplication be requiring new sign up and creating new username and password.
  • Polls – Allows us to collect vital information in making decisions to make user group better.
  • Forums – Allows user group members to collaborate and build a community based learning and support system.
  • Feed Aggregation – Allows us to fetch relevant information from blogs and provide group members single click access to it.
  • Syndication – With RSS feeds, members can keep up to date with user group activity using their favorite syndication reader.

Effective immediately, old site will forward to new site. We realize the content from old site is not available to new site just yet and we will be working on migrating relevant content to the new site in coming week. We appreciate your understanding.

Our hope is that the new name along with new site will provide use with a portal we all can build our community upon. We welcome your comments.

What is Role Based Access Control?

Role Based Access Control (RBAC) is the new permissions model in Microsoft Exchange Server 2010. With RBAC, you don't need to modify and manage access control lists (ACLs), which was done in Exchange Server 2007 and earlier.

You can read more about it at Exchange Team Blog: http://msexchangeteam.com/archive/2009/11/16/453222.aspx

 

Technet Reference to Understanding Role Based Access Control is another great reference: http://technet.microsoft.com/en-us/library/dd298183.aspx

Feel free to add your thoughts and comments.

May 11, 2010 User Group Meeting

05/11/2010 6:00 pm
05/11/2010 8:00 pm
US/Eastern

We meet at the Microsoft Malvern office every second Tuesday of the month, the Microsoft office is located on second floor. When you arrive, please inform security that you are attending the User Group event and they will grant you access to building.

Microsoft Corporation
45 Liberty Blvd, suite 210,
Malvern, PA, 19355

You can also call Bhargav's cell (570) 709-9046 or my cell (610) 973-7123 to gain access if needed.

Remote users can join using Live Meeting at URL http://bit.ly/ehlougmonthly. This URL will remain open for all meetings and not change. Please bookmark for future meetings.

If you do not have Live Meeting client installed, you can install it from http://bit.ly/livemeetingclient.