Mike Lagase from Microsoft just posted a GREAT article about auditing Exchange 2007.
Manage Exchange Certificates with a free GUI
26 05 2010Managing Exchange 2007 certificates form powershell can sometimes be confusing. U-B Tech has released a free tool that allows Exchange Administrators to manage certificates from a GUI. The Certificate Manager for Exchange Server 2007 enables administrators to do:
- Manage your current server certificates.
- Enable certificates for Exchange 2007 Services (POP, IMAP, SMTP, IIS, UM).
- Generate an Exchange 2007 Certificate Signing Request and process the Certificate Authority answer.
- Generate an Exchange 2007 Self-Signed certificate (not for production use).
- Easily include additional subject names in a single certificate.
- Import & Export ability for existing certificates.

[Certificate Manager for Exchange Server 2007]
Comments : Leave a Comment »
Categories : Exchange, Security
Powershell Script: ActiveSync Properties
2 04 2010
Our good friend StevieMac over at The Scripting Guy wrote a nice powershell script that allows Exchange Administrators to view the ActiveSync properties of a user’s mailbox in a nice looking GUI window:
function GenerateForm {
########################################################################
# Generated On: 12/22/2008 4:04 PM
# Generated By: StevieMac@thescriptingguy.com
########################################################################
Function getInfo()
{
Get-ActiveSyncDeviceStatistics -Mailbox $txtQNumber.text -ShowRecoveryPassword:$true | ForEach-Object{
if ($_.DeviceID -ne $null){$txtDeviceID.text = $_.DeviceID}
if ($_.FirstSyncTime -ne $null){$txtFirstSyncTime.text = $_.FirstSyncTime}
if ($_.DeviceModel -ne $null){$txtModel.text = $_.DeviceModel}
if ($_.DeviceIMEI -ne $null){$txtIMEI.text = $_.DeviceIMEI}
if ($_.LastPolicyUpdateTime -ne $null){$txtLastPolicyUpdate.text = $_.LastPolicyUpdateTime}
if ($_.LastSyncAttemptTime -ne $null){$txtLastSyncAttempt.text = $_.LastSyncAttemptTime}
if ($_.LastSuccessSync -ne $null){$txtLastSuccessfulSync.text = $_.LastSuccessSync}
if ($_.DevicePhoneNumber -ne $null){$txtPhoneNumber.text = $_.DevicePhoneNumber}
if ($_.DeviceOS -ne $null){$txtDeviceOS.text = $_.DeviceOS}
if ($_.RecoveryPassword -eq $null){$txtRecoveryPassword.text = 'No Password Set'}
if ($_.RecoveryPassword -ne $null){$txtRecoveryPassword.text = $_.RecoveryPassword}
}
}
#region Import the Assembles
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
#endregion
#region Generated Form Objects
$frmActiveSync = New-Object System.Windows.Forms.Form
$txtDeviceOS = New-Object System.Windows.Forms.TextBox
$lblDeviceOS = New-Object System.Windows.Forms.Label
$txtRecoveryPassword = New-Object System.Windows.Forms.TextBox
$txtLastPolicyUpdate = New-Object System.Windows.Forms.TextBox
$txtLastSuccessfulSync = New-Object System.Windows.Forms.TextBox
$txtLastSyncAttempt = New-Object System.Windows.Forms.TextBox
$txtFirstSyncTime = New-Object System.Windows.Forms.TextBox
$txtIMEI = New-Object System.Windows.Forms.TextBox
$txtDeviceID = New-Object System.Windows.Forms.TextBox
$txtPhoneNumber = New-Object System.Windows.Forms.TextBox
$txtModel = New-Object System.Windows.Forms.TextBox
$lblRecoveryPassword = New-Object System.Windows.Forms.Label
$lblLastPolicyUpdate = New-Object System.Windows.Forms.Label
$lblLastSuccessful = New-Object System.Windows.Forms.Label
$lblLastSyncAttempt = New-Object System.Windows.Forms.Label
$lblFirstSync = New-Object System.Windows.Forms.Label
$lblIMEI = New-Object System.Windows.Forms.Label
$lblDeviceID = New-Object System.Windows.Forms.Label
$lblPhoneNumber = New-Object System.Windows.Forms.Label
$lblModel = New-Object System.Windows.Forms.Label
$txtQNumber = New-Object System.Windows.Forms.TextBox
$btnList = New-Object System.Windows.Forms.Button
#endregion Generated Form Objects
#----------------------------------------------
#Generated Event Script Blocks
#----------------------------------------------
#Provide Custom Code for events specified in PrimalForms.
$btnList.Add_Click({getInfo})
#----------------------------------------------
#region Generated Form Code
$frmActiveSync.Text = 'List Active Sync User Information'
$frmActiveSync.Name = 'frmActiveSync'
$frmActiveSync.StartPosition = 1
$frmActiveSync.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 464
$System_Drawing_Size.Height = 328
$frmActiveSync.ClientSize = $System_Drawing_Size
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 214
$System_Drawing_Size.Height = 20
$txtDeviceOS.Size = $System_Drawing_Size
$txtDeviceOS.DataBindings.DefaultDataSourceUpdateMode = 0
$txtDeviceOS.ReadOnly = $True
$txtDeviceOS.Name = 'txtDeviceOS'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 207
$System_Drawing_Point.Y = 67
$txtDeviceOS.Location = $System_Drawing_Point
$txtDeviceOS.TabIndex = 21
$frmActiveSync.Controls.Add($txtDeviceOS)
$lblDeviceOS.TabIndex = 20
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 100
$System_Drawing_Size.Height = 23
$lblDeviceOS.Size = $System_Drawing_Size
$lblDeviceOS.Text = 'Operating System'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 13
$System_Drawing_Point.Y = 70
$lblDeviceOS.Location = $System_Drawing_Point
$lblDeviceOS.DataBindings.DefaultDataSourceUpdateMode = 0
$lblDeviceOS.Name = 'lblDeviceOS'
$frmActiveSync.Controls.Add($lblDeviceOS)
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 215
$System_Drawing_Size.Height = 20
$txtRecoveryPassword.Size = $System_Drawing_Size
$txtRecoveryPassword.DataBindings.DefaultDataSourceUpdateMode = 0
$txtRecoveryPassword.ReadOnly = $True
$txtRecoveryPassword.Name = 'txtRecoveryPassword'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 207
$System_Drawing_Point.Y = 284
$txtRecoveryPassword.Location = $System_Drawing_Point
$txtRecoveryPassword.TabIndex = 19
$frmActiveSync.Controls.Add($txtRecoveryPassword)
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 215
$System_Drawing_Size.Height = 20
$txtLastPolicyUpdate.Size = $System_Drawing_Size
$txtLastPolicyUpdate.DataBindings.DefaultDataSourceUpdateMode = 0
$txtLastPolicyUpdate.ReadOnly = $True
$txtLastPolicyUpdate.Name = 'txtLastPolicyUpdate'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 207
$System_Drawing_Point.Y = 257
$txtLastPolicyUpdate.Location = $System_Drawing_Point
$txtLastPolicyUpdate.TabIndex = 18
$frmActiveSync.Controls.Add($txtLastPolicyUpdate)
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 215
$System_Drawing_Size.Height = 20
$txtLastSuccessfulSync.Size = $System_Drawing_Size
$txtLastSuccessfulSync.DataBindings.DefaultDataSourceUpdateMode = 0
$txtLastSuccessfulSync.ReadOnly = $True
$txtLastSuccessfulSync.Name = 'txtLastSuccessfulSync'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 207
$System_Drawing_Point.Y = 230
$txtLastSuccessfulSync.Location = $System_Drawing_Point
$txtLastSuccessfulSync.TabIndex = 17
$frmActiveSync.Controls.Add($txtLastSuccessfulSync)
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 215
$System_Drawing_Size.Height = 20
$txtLastSyncAttempt.Size = $System_Drawing_Size
$txtLastSyncAttempt.DataBindings.DefaultDataSourceUpdateMode = 0
$txtLastSyncAttempt.ReadOnly = $True
$txtLastSyncAttempt.Name = 'txtLastSyncAttempt'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 207
$System_Drawing_Point.Y = 203
$txtLastSyncAttempt.Location = $System_Drawing_Point
$txtLastSyncAttempt.TabIndex = 16
$frmActiveSync.Controls.Add($txtLastSyncAttempt)
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 215
$System_Drawing_Size.Height = 20
$txtFirstSyncTime.Size = $System_Drawing_Size
$txtFirstSyncTime.DataBindings.DefaultDataSourceUpdateMode = 0
$txtFirstSyncTime.ReadOnly = $True
$txtFirstSyncTime.Name = 'txtFirstSyncTime'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 207
$System_Drawing_Point.Y = 176
$txtFirstSyncTime.Location = $System_Drawing_Point
$txtFirstSyncTime.TabIndex = 15
$frmActiveSync.Controls.Add($txtFirstSyncTime)
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 215
$System_Drawing_Size.Height = 20
$txtIMEI.Size = $System_Drawing_Size
$txtIMEI.DataBindings.DefaultDataSourceUpdateMode = 0
$txtIMEI.ReadOnly = $True
$txtIMEI.Name = 'txtIMEI'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 207
$System_Drawing_Point.Y = 149
$txtIMEI.Location = $System_Drawing_Point
$txtIMEI.TabIndex = 14
$frmActiveSync.Controls.Add($txtIMEI)
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 215
$System_Drawing_Size.Height = 20
$txtDeviceID.Size = $System_Drawing_Size
$txtDeviceID.DataBindings.DefaultDataSourceUpdateMode = 0
$txtDeviceID.ReadOnly = $True
$txtDeviceID.Name = 'txtDeviceID'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 207
$System_Drawing_Point.Y = 122
$txtDeviceID.Location = $System_Drawing_Point
$txtDeviceID.TabIndex = 13
$frmActiveSync.Controls.Add($txtDeviceID)
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 215
$System_Drawing_Size.Height = 20
$txtPhoneNumber.Size = $System_Drawing_Size
$txtPhoneNumber.DataBindings.DefaultDataSourceUpdateMode = 0
$txtPhoneNumber.ReadOnly = $True
$txtPhoneNumber.Name = 'txtPhoneNumber'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 207
$System_Drawing_Point.Y = 93
$txtPhoneNumber.Location = $System_Drawing_Point
$txtPhoneNumber.TabIndex = 12
$frmActiveSync.Controls.Add($txtPhoneNumber)
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 215
$System_Drawing_Size.Height = 20
$txtModel.Size = $System_Drawing_Size
$txtModel.DataBindings.DefaultDataSourceUpdateMode = 0
$txtModel.ReadOnly = $True
$txtModel.Name = 'txtModel'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 207
$System_Drawing_Point.Y = 40
$txtModel.Location = $System_Drawing_Point
$txtModel.TabIndex = 11
$frmActiveSync.Controls.Add($txtModel)
$lblRecoveryPassword.TabIndex = 10
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 182
$System_Drawing_Size.Height = 23
$lblRecoveryPassword.Size = $System_Drawing_Size
$lblRecoveryPassword.Text = 'Recovery Password'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 13
$System_Drawing_Point.Y = 287
$lblRecoveryPassword.Location = $System_Drawing_Point
$lblRecoveryPassword.DataBindings.DefaultDataSourceUpdateMode = 0
$lblRecoveryPassword.Name = 'lblRecoveryPassword'
$frmActiveSync.Controls.Add($lblRecoveryPassword)
$lblLastPolicyUpdate.TabIndex = 9
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 182
$System_Drawing_Size.Height = 23
$lblLastPolicyUpdate.Size = $System_Drawing_Size
$lblLastPolicyUpdate.Text = 'Last Policy Update Time'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 13
$System_Drawing_Point.Y = 260
$lblLastPolicyUpdate.Location = $System_Drawing_Point
$lblLastPolicyUpdate.DataBindings.DefaultDataSourceUpdateMode = 0
$lblLastPolicyUpdate.Name = 'lblLastPolicyUpdate'
$frmActiveSync.Controls.Add($lblLastPolicyUpdate)
$lblLastSuccessful.TabIndex = 8
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 182
$System_Drawing_Size.Height = 23
$lblLastSuccessful.Size = $System_Drawing_Size
$lblLastSuccessful.Text = 'Last Successful Sync Time'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 13
$System_Drawing_Point.Y = 233
$lblLastSuccessful.Location = $System_Drawing_Point
$lblLastSuccessful.DataBindings.DefaultDataSourceUpdateMode = 0
$lblLastSuccessful.Name = 'lblLastSuccessful'
$frmActiveSync.Controls.Add($lblLastSuccessful)
$lblLastSyncAttempt.TabIndex = 7
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 182
$System_Drawing_Size.Height = 23
$lblLastSyncAttempt.Size = $System_Drawing_Size
$lblLastSyncAttempt.Text = 'Last Sync Attempt Time'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 13
$System_Drawing_Point.Y = 206
$lblLastSyncAttempt.Location = $System_Drawing_Point
$lblLastSyncAttempt.DataBindings.DefaultDataSourceUpdateMode = 0
$lblLastSyncAttempt.Name = 'lblLastSyncAttempt'
$frmActiveSync.Controls.Add($lblLastSyncAttempt)
$lblFirstSync.TabIndex = 6
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 182
$System_Drawing_Size.Height = 23
$lblFirstSync.Size = $System_Drawing_Size
$lblFirstSync.Text = 'First Sync Time'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 13
$System_Drawing_Point.Y = 179
$lblFirstSync.Location = $System_Drawing_Point
$lblFirstSync.DataBindings.DefaultDataSourceUpdateMode = 0
$lblFirstSync.Name = 'lblFirstSync'
$frmActiveSync.Controls.Add($lblFirstSync)
$lblIMEI.TabIndex = 5
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 182
$System_Drawing_Size.Height = 23
$lblIMEI.Size = $System_Drawing_Size
$lblIMEI.Text = 'IMEI'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 13
$System_Drawing_Point.Y = 152
$lblIMEI.Location = $System_Drawing_Point
$lblIMEI.DataBindings.DefaultDataSourceUpdateMode = 0
$lblIMEI.Name = 'lblIMEI'
$frmActiveSync.Controls.Add($lblIMEI)
$lblDeviceID.TabIndex = 4
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 182
$System_Drawing_Size.Height = 23
$lblDeviceID.Size = $System_Drawing_Size
$lblDeviceID.Text = 'Device ID'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 13
$System_Drawing_Point.Y = 125
$lblDeviceID.Location = $System_Drawing_Point
$lblDeviceID.DataBindings.DefaultDataSourceUpdateMode = 0
$lblDeviceID.Name = 'lblDeviceID'
$frmActiveSync.Controls.Add($lblDeviceID)
$lblPhoneNumber.TabIndex = 3
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 182
$System_Drawing_Size.Height = 23
$lblPhoneNumber.Size = $System_Drawing_Size
$lblPhoneNumber.Text = 'Phone Number'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 13
$System_Drawing_Point.Y = 96
$lblPhoneNumber.Location = $System_Drawing_Point
$lblPhoneNumber.DataBindings.DefaultDataSourceUpdateMode = 0
$lblPhoneNumber.Name = 'lblPhoneNumber'
$frmActiveSync.Controls.Add($lblPhoneNumber)
$lblModel.TabIndex = 2
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 182
$System_Drawing_Size.Height = 23
$lblModel.Size = $System_Drawing_Size
$lblModel.Text = 'Model'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 43
$lblModel.Location = $System_Drawing_Point
$lblModel.DataBindings.DefaultDataSourceUpdateMode = 0
$lblModel.Name = 'lblModel'
$frmActiveSync.Controls.Add($lblModel)
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 100
$System_Drawing_Size.Height = 20
$txtQNumber.Size = $System_Drawing_Size
$txtQNumber.DataBindings.DefaultDataSourceUpdateMode = 0
$txtQNumber.Text = 'Enter Users Alias'
$txtQNumber.Name = 'txtQNumber'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 95
$System_Drawing_Point.Y = 15
$txtQNumber.Location = $System_Drawing_Point
$txtQNumber.TabIndex = 1
$frmActiveSync.Controls.Add($txtQNumber)
$btnList.TabIndex = 0
$btnList.Name = 'btnList'
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 75
$System_Drawing_Size.Height = 23
$btnList.Size = $System_Drawing_Size
$btnList.UseVisualStyleBackColor = $True
$btnList.Text = 'List Info'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 13
$System_Drawing_Point.Y = 13
$btnList.Location = $System_Drawing_Point
$btnList.DataBindings.DefaultDataSourceUpdateMode = 0
$btnList.add_Click($btnList_OnClick)
$frmActiveSync.Controls.Add($btnList)
#endregion Generated Form Code
#Show the Form
$frmActiveSync.ShowDialog()| Out-Null
} #End Function
#Call the Function
GenerateForm
Comments : Leave a Comment »
Categories : Exchange, Powershell, Script
Why it’s a bad idea to send large email attachments
3 11 2009The Google Operating System Blog has a great post explaining why it’s not a good idea to send large attachments:
People who demand large message size limits rarely understand the limitations of the email transmission. Because of the MIME encoding used when sending binary attachments, your files expand 33% when sent via email.
In other words, a 15MB attachment requires 20MB plus the message text, plus message headers.
When you carbon copy 20 of your friends & coworkers, a separate message is sent to each. 20MB x 20 = 400MB. That’s half a freaking CD.If 5 of those friends are on the same small company email server, downloading those messages saturates the entire bandwidth of their T1 data line for nearly 9 minutes. Because each message has separate headers, it isn’t easily cached and gets completely downloaded by each recipient.
Compare this to uploading the same attachment to a web server, FTP server, file transmission service like YouSendIt, or video streaming site like YouTube. One copy is uploaded. The download is typically 8-bit so minimal expansion factor. The small business’ network can cache the content, so it’s only downloaded once then fetched locally from the web caching server.
Bottom line, sending a large attachment via email is relocating using the U.S. Postal Service as your moving company. It is painful, limited, and expensive.
As an email administrator, I couldn’t agree more…
Comments : Leave a Comment »
Categories : Exchange
Exchange 2007 SP2 is out.
26 08 2009OK all you admins, put in that Change Request, and get installing! For an overview of the new features that are available in Exchange Server 2007 SP2, see “What’s New in Exchange Server 2007 SP2”.
Comments : Leave a Comment »
Categories : Exchange
Exchange 2010 RC is Available!
18 08 2009Just heard from my friend Scott @ MS that the RC is available for download! It’s been posted on the Exchange Blog here: http://msexchangeteam.com/archive/2009/08/17/451974.aspx
Comments : Leave a Comment »
Categories : Exchange
Exchange 2007 CCR – Move File Share Witness
10 08 2009Sometimes it is necessary to move the Exchange 2007 CCR’s File Share Witness. This is easily done with the command prompt:
cluster CLUSTERNAME resource “Majority Node Set” /priv MNSFileShare=\\server\share
cluster CLUSTERNAME group “Cluster Group” /move
cluster CLUSTERNAME group “Cluster Group” /move
When moving the FSW location, don’t forget to set the correct permissions – for more information on File Share Witness, see Technet: http://technet.microsoft.com/en-us/library/bb124922.aspx
Comments : Leave a Comment »
Categories : Exchange
Exchange 2010 & Office 2010 “Visual Pressroom” from Microsoft
2 05 2009Microsoft has posted a “Visual Pressroom” for their Upcoming Exchange 2010, Office 2010 and Office Web Applications.
Office Web Applications:
- Editing & Viewing PowerPoint presentations in PowerPoint Web application
- Editing & Viewing Word documents in Word Web application
- Editing & Viewing Excel spreadsheets in Excel Web application
- Editing & Viewing OneNote notes in OneNote Web application
Exchange 2010 and Office 2010:
- Conversation View. To reduce inbox clutter, Exchange 2010 provides an enhanced Conversation View that streamlines inbox navigation by automatically organizing message threads based on the natural conversation flow between parties.
- Ignore Conversation. This e-mail “mute button” allows people to remove themselves from an irrelevant e-mail string, reducing unwanted e-mail and runaway reply-all threads.
- Voice Mail Preview. Exchange 2010 further enhances voice mail functionality by delivering speech-to-text voice mail, allowing users to receive voice mail previews in their inbox.
- Outlook Web Access premium support is available for Mozilla Firefox & Apple Safari.
- MailTips warn people before they commit an e-mail faux pas, such as sending mail to a large distribution group, among other things. MailTips alert people if they do not have permission to send to certain recipients, if a message may be rejected or if a recipient is out of the office, among other things.
Comments : Leave a Comment »
Categories : Exchange
Microsoft Releases Beta Exchange 2010 (Codenamed Exchange 14)
15 04 2009 
Microsoft Exchange Server 2010 helps you achieve new levels of reliability and performance by delivering features that help to simplify your administration, protect your communications, and delight your users by meeting their demands for greater business mobility.
Microsoft Exchange® Server 2010 Beta helps IT Professionals achieve new levels of reliability with greater flexibility, enhanced user experiences, and increased protection for business communications.
- Flexible and reliable – Exchange Server 2010 gives you the flexibility to tailor your deployment based on your company’s unique needs and a simplified way to keep e-mail continuously available for your users.
- Anywhere access – Exchange Server 2010 helps your users get more done by giving them the freedom to securely access all their communications – e-mail, voice mail, instant messaging, and more – from virtually any platform, Web browser, or device.
- Protection and compliance – Exchange Server 2010 delivers integrated information loss prevention, and compliance tools aimed at helping you simplify the process of protecting your company’s communications and meeting regulatory requirements.
This software is intended for evaluation purposes only. You must accept the license terms before you are authorized to use this software. There is no product support for this trial software. You are welcome to leave feedback here and share your trial experiences with others and to ask for advice.
System Requirements
- Supported Operating Systems: Windows Server 2008; Windows Vista 64-bit Editions Service Pack 1
- Operating System for Installing Management Tools: The 64-bit editions of Microsoft® Windows Vista® SP1 or later, or Windows Server® 2008.
- PC – x64 architecture-based computer with Intel processor that supports Intel 64 architecture (formerly known as Intel EM64T) or AMD processor that supports the AMD64 platform
Additional requirements to run Exchange Server 2010 Beta
- Memory – Minimum of 4 gigabytes (GB) of RAM per server plus 5 megabytes (MB) of RAM recommended for each mailbox
- Disk space
- At least 1.2 GB on the drive used for installation
- An additional 500 MB of available disk space for each Unified Messaging (UM) language pack that you plan to install
- 200 MB of available disk space on the system drive
- Drive – DVD-ROM drive, local or network accessible
- File format – Disk partitions formatted as NTFS file systems
- Monitor – Screen resolution 800 x 600 pixels or higher
Exchange Server 2010 Beta Prerequisites
If these required prerequisites are not already installed, the Exchange Server 2010 Beta setup process will prompt and provide links to the installation locations; Internet access will be required if the prerequisites are not already installed or available on a local network.
- Microsoft® .NET Framework 3.5
- Windows PowerShell v2
- Windows Remote Management
Actual requirements will vary based on system configuration and specific features installed. For more detailed system requirements, please refer to the Exchange Server 2010 Technical Documentation Library.
For a list of Windows Server 2008 requirements, visit http://technet.microsoft.com/windowsserver/2008.
The downloadable software is for evaluation purposes only and is not a released product. If you plan to install the software on your primary computer, it is recommended that you back up your existing data prior to installation. Before you install the Microsoft® Exchange Server 2010 Beta, we recommend that you review the summary of system requirements and technical information located in the Exchange Server 2010 Technical Documentation Library.
Expiration Notice
This time-limited, free beta version of Microsoft® Exchange Server 2010 will end 360 days after installation.
To learn more about Microsoft® Exchange Server 2010 visit http://www.microsoft.com/exchange/2010
Comments : Leave a Comment »
Categories : Exchange
Script: Get time of Exchange last online defrag
19 03 2009digging through the Application log can be a real pain sometimes. Last night, I was asked by a Microsoft Engineer to give me the last online defrag of a server that we had a case opened on. So, instead of opening up the Event Viewer, I went to Powershell:
# Script to return the date and time of the last online defrag of each Exchange 2007 Database
# Highly recommended to run this locally on the Exchange server, not remotely.
# Written by Dan Burgess
# nerd@EverydayNerd.com
$servername = read-host "Enter Exchange Mailbox Server Name"
$db = Get-StorageGroup -Server $servername | Get-MailboxDatabase
foreach ($objItem in $db)
{
$EventLogs = get-EventLog -Logname Application| Where-Object {$_.EventID -eq 703 -or $_.EventID -eq 701 -and $_.source -eq 'ESE' } | Where-Object {$_.ReplacementStrings -like $objItem.EdbFilePath} | select-object -first 1
write-host ' Mailbox store: ' $objItem.Identity
write-host ' Last Defrag completed: ' $EventLogs.TimeGenerated
write-host ' '
}
Works like a charm! Next time you need to extract info from a computers log files, edit this script to match the EventID that you need, and slap it in Powershell! Happy scripting!
Comments : Leave a Comment »
Categories : Exchange, Powershell
