Sunday, 17 November 2013 00:00

Exchange 2010/2013 HelpDesk Pack - Download

Written by

Recently I came across a request from our HelpDesk for a tool to view the User Mailbox properties from their desktop with very minimal information. The challenge was all the machines that they use are running 32 bit OS (Windows 7 or Windows 8), which they could not upgrade due to some other application dependancy.

Here is a script which invoke the powershell library from Exchange Server through the ConnectionUri, and can run from any Windows 7 and Windows 8 machines. I hope the pulled information will help the HelpDesk team to do a first level analysis of the end user issues.  Take a look at the sample Exchange 2010/2013 Server Helpdesk Pack script below.

ED_HelpDesk_Support_Pack

Download the complete Script Here

Now, let us look at the modification that you will have to do to make it work on your infra,

Change the Exchange Server name of  –ConnectionUri in the line starts with $Session

$Session = New-PSSession –ConfigurationName Microsoft.Exchange –ConnectionUri http://Ex2010-01.fabrikam.com/PowerShell/

thats' it, all other part of the script is common for any infrastructure.

Below shows the important part of the script,

#---------------------------------------------------------------------
#Main Function Gathering Exchange/AD Information
#---------------------------------------------------------------------

Function DisplayFn($x)
{
$MailboxProp = Get-Mailbox -Identity $x -ErrorAction SilentlyContinue
if($MailboxProp -eq $null)
    {[System.Windows.Forms.MessageBox]::Show("Verify Your Input" , "Status" , 0)}
else
{
#$x=$objTextInputID.Text;
#[System.Windows.Forms.MessageBox]::Show($x , "Status" , 4)
$CASFeature = Get-CASMailbox -Identity $x
$MailboxProp = Get-Mailbox -Identity $x
$MBXDBProp = Get-MailboxDatabase -Identity $MailboxProp.Database
$UserProp = Get-User –Identity $MailboxProp.SamAccountName
if ( $MailboxProp.ForwardingAddress -ne $null)
    {
    $FowardAddress = Get-Recipient -Identity $MailboxProp.ForwardingAddress
    $objTextFwd.Text = $FowardAddress.PrimarySmtpAddress
    }
else
    {$objTextFwd.Text = "N/A"}
if ($MailboxProp.UseDatabaseQuotaDefaults -eq $True)
    {
    #$tempY = ($MBXDBProp.IssueWarningQuota).value.ToMB()
    #$objTextWarnQuota.Text = $MBXDBProp.IssueWarningQuota.value.ToMB()
    $objTextWarnQuota.Text = $MBXDBProp.IssueWarningQuota
    $objTextSendQuota.Text = $MBXDBProp.ProhibitSendQuota
    $objTextHardQuota.Text = $MBXDBProp.ProhibitSendReceiveQuota
    }
else
    {
    $objTextWarnQuota.Text = $MailboxProp.IssueWarningQuota
    $objTextSendQuota.Text = $MailboxProp.ProhibitSendQuota
    $objTextHardQuota.Text = $MailboxProp.ProhibitSendReceiveQuota
    }#[System.Windows.Forms.MessageBox]::Show($CASFeature , "Status" , 4)
$objTextOWA.Text = $CASFeature.OWAEnabled
$objTextAS.Text = $CASFeature.ActiveSyncEnabled
if ($MailboxProp.MaxSendSize -eq "unlimited")
    {$objTextSndLmt.Text = "10 MB"}
else
    {$objTextSndLmt.Text = $MailboxProp.MaxSendSize}$objTextRcptLmt.Text = $MailboxProp.RecipientLimits
$ObjTextPwdExpry.Text = (([datetime]::FromFileTime((Get-ADUser –Identity $MailboxProp.SamAccountName -Properties "msDS-UserPasswordExpiryTimeComputed")."msDS-UserPasswordExpiryTimeComputed"))-(Get-Date)).Days
$objTextEmail.Text = $MailboxProp.PrimarySMTPAddress
$objTextUAC.Text = $UserProp.UserAccountControl
$objTextDisName.Text = $UserProp.DisplayName
#$temptotSize = (Get-MailboxStatistics $UserProp.DisplayName).totalitemsize.value
$ObjTextMbxSize.Text = (Get-MailboxStatistics $UserProp.DisplayName).totalitemsize
#$objForm.Close()
}}

The above written function gathers all the required information. If you wish to add more information, you can easily modify the script.

Download the complete Script Here

Update:

I have missed to mention the pre-requisite to run this script,

  • Any version of Windows 7 or 8 (32 or 64 bit)
  • Powershell 1.0 or above
  • Active Directory Admin Pack

Share your comments!!!

Download the complete Script Here

-Praveen

theme by reviewshub