Programatically add keys and values to edgetransport.exe.config for Exchange 2010
Recently, some testing on some new Exchange 2010 hub transport servers yielded some less than expected performance results. Processor utilization was much higher during sustained load testing of message throughput in some dedicated message journal sites.
A colleague worked to determine a solution, and came up with adding two keys and respective values to the EdgeTransport.exe.config file in [Exchange installation folder]\bin. This caused a substantial drop in processor utilization, but caused another problem – how to deploy this solution easily, in a repeatable fashion? We certainly don’t want to have to manually edit dozens of XML files across the production environment.
Our deployment method was entirely scripted, so I set out to find a way to incorporate the fix into the server provisioning scripts. Having not had to deal with editing XML files before, I did a fair amount of searching online, but had trouble with nearly everything I found. Obscure errors, and overly complex code had me just cobbling some things together until it worked. I finally came up with the New-AppSetting function below. It’s lean and mean, but it works.
function New-AppSetting {
<#
.SYNOPSIS
Adds keys and values to the EdgeTransport.exe.config file for Exchange 2010
.DESCRIPTION
Adds user defined keys and values to the EdgeTransport.exe.config file for Exchange 2010 and restarts MSExchangeTransport service
.NOTES
Version : 1.0
Rights Required : Local admin on server
: ExecutionPolicy of RemoteSigned or Unrestricted
Exchange Version : 2010 SP1 UR6
Author(s) : Pat Richard (pat@innervation.com)
Dedicated Post : http://www.ehloworld.com/1055
Disclaimer : You running this script means you won't blame me if this breaks your stuff.
Info Stolen from :
.EXAMPLE
New-AppSetting -key [key] -value [value]
.INPUTS
None. You cannot pipe objects to this script.
#Requires -Version 2.0
#>
[cmdletBinding(SupportsShouldProcess = $true)]
param(
[parameter(Position = 0, ValueFromPipeline = $false, ValueFromPipelineByPropertyName = $true, Mandatory = $true, HelpMessage = "No key specified")]
[string]$key,
[parameter(Position = 0, ValueFromPipeline = $false, ValueFromPipelineByPropertyName = $true, Mandatory = $true, HelpMessage = "No value specified")]
[string]$value
)
[string]$configfile = $env:ExchangeInstallPath+"bin\EdgeTransport.exe.config"
if (Test-Path $ConfigFile){
[xml]$xml = Get-Content $ConfigFile
[string]$currentDate = (get-date).tostring("MM_dd_yyyy-hh_mm_s")
[string]$backup = $configfile + "_$currentDate"
Copy-Item $configfile $backup
$new = $xml.CreateElement('add')
$new.SetAttribute('key', $key)
$new.SetAttribute('value', $value)
$xml.configuration.appSettings.AppendChild($new) | Out-Null
$xml.Save($ConfigFile)
}
Restart-Service MSExchangeTransport
} # end function New-AppSetting
You call it via:
New-AppSetting -key [key name] -value [value]
such as
New-AppSetting -key "RecipientThreadLimit" -value "20"
And it will add the key at the bottom of the list in EdgeTransport.exe.config and restart the transport service for the change to take effect. Prior to making the change, it creates a backup copy of EdgeTransport.exe.config for safe keeping.
One caveat – I didn’t have a lot of time to add some error checking or validation. The script does not check to see if the key is already present in the list (in our case, it’s not). So if you run the function multiple times with the same key name, you’ll end up with that key appearing multiple times in EdgeTransport.exe.config. I worked around this quickly in my script by using the following:
if ((Get-Content ($env:ExchangeInstallPath+"bin\edgetransport.exe.config")) -notmatch "RecipientThreadLimit"){
New-AppSetting -key "RecipientThreadLimit" -value "20"
}
If I get some free cycles, I’ll streamline this a little more. But it works, and we’re able to continue deploying dozens of hub transport servers.
PowerShell function to show balloon tips
Sometimes, we run scripts that may take quite a while to process. Rather than sit idly and watch the script process, we can trigger balloon tips to let us know when it’s done. Something like:
These are the same type of balloon tips that alert us to outdated or disabled security settings, pending updates, etc.
This handy little function makes it very easy to use this useful feature. I took the info from PS1 at http://powershell.com/cs/blogs/tips/archive/2011/09/27/displaying-balloon-tip.aspx and put it into a function and optimized it a little. You can specify the icon (none, info, warning, error), the title text, and the tip text.
function New-BalloonTip {
<#
.SYNOPSIS
Displays a balloon tip in the lower right corner of the screen.
.DESCRIPTION
Displays a balloon tip in the lower right corner of the screen. Icon, title, and text can be customized.
.NOTES
Version : 1.0
Rights Required : Local admin on server
: ExecutionPolicy of RemoteSigned or Unrestricted
Author(s) : Pat Richard (pat@innervation.com)
Dedicated Post : http://www.ehloworld.com/1038
Disclaimer : You running this script means you won't blame me if this breaks your stuff.
.EXAMPLE
New-BalloonTip -icon [none|info|warning|error] -title [title text] -text [text]
Description
-----------
Creates a balloon tip in the lower right corner.
.LINK
http://www.ehloworld.com/1038
.INPUTS
None. You cannot pipe objects to this script.
#Requires -Version 2.0
#>
[CmdletBinding(SupportsShouldProcess = $true)]
param(
[parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false, HelpMessage = "No icon specified. Options are None, Info, Warning, and Error!")]
[ValidateSet("None", "Info", "Warning", "Error")]
[string]$Icon = "error",
[parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true, HelpMessage = "No text specified!")]
[string]$Text,
[parameter(Position = 2, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true, HelpMessage = "No title specified!")]
[string]$Title
)
[system.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null
$balloon = New-Object System.Windows.Forms.NotifyIcon
$path = Get-Process -id $pid | Select-Object -ExpandProperty Path
$balloon.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
$balloon.BalloonTipIcon = $Icon
$balloon.BalloonTipText = $Text
$balloon.BalloonTipTitle = $Title
$balloon.Visible = $true
$balloon.ShowBalloonTip(10000)
} # end function New-BalloonTip
And you can call it by either supplying the parameter names:
New-BalloonTip -icon info -text "PowerShell script has finished processing" -title "Completed"
or not:
New-BalloonTip info "PowerShell script has finished processing" "Completed"
Two PowerShell functions for getting and setting UAC status
User Account Control, also known as UAC, was designed to reduce vulnerability by requiring confirmation when system settings are being changed. Some people hate it, some don’t mind it. But most understand it’s intent.
In any case, when deploying servers, it’s key to know what state the UAC settings are in, so that we can script accordingly. Normally, I just set the registry value to whatever I need it to be, using a one-liner such as:
To disable UAC:
Set-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\policies\system -Name EnableLUA -Value 0
To enable UAC:
Set-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\policies\system -Name EnableLUA -Value 0
UAC changes how a token is assembled when you log on. If we’re making changes to this, remember that a reboot is required before the new setting takes effect.
But what if we just need to programatically peek at what UAC is set to, so that we can act accordingly? Well, this handy little function should help:
function Get-UACStatus {
<#
.SYNOPSIS
Gets the current status of User Account Control (UAC) on a computer.
.DESCRIPTION
Gets the current status of User Account Control (UAC) on a computer. $true indicates UAC is enabled, $false that it is disabled.
.NOTES
Version : 1.0
Rights Required : Local admin on server
: ExecutionPolicy of RemoteSigned or Unrestricted
Author(s) : Pat Richard (pat@innervation.com)
Dedicated Post : http://www.ehloworld.com/1026
Disclaimer : You running this script means you won't blame me if this breaks your stuff.
.EXAMPLE
Get-UACStatus
Description
-----------
Returns the status of UAC for the local computer. $true if UAC is enabled, $false if disabled.
.EXAMPLE
Get-UACStatus -Computer [computer name]
Description
-----------
Returns the status of UAC for the computer specified via -Computer. $true if UAC is enabled, $false if disabled.
.LINK
http://www.ehloworld.com/1026
.INPUTS
None. You cannot pipe objects to this script.
#Requires -Version 2.0
#>
[cmdletBinding(SupportsShouldProcess = $true)]
param(
[parameter(ValueFromPipeline = $false, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
[string]$Computer
)
[string]$RegistryValue = "EnableLUA"
[string]$RegistryPath = "Software\Microsoft\Windows\CurrentVersion\Policies\System"
[bool]$UACStatus = $false
$OpenRegistry = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine,$Computer)
$Subkey = $OpenRegistry.OpenSubKey($RegistryPath,$false)
$Subkey.ToString() | Out-Null
$UACStatus = ($Subkey.GetValue($RegistryValue) -eq 1)
write-host $Subkey.GetValue($RegistryValue)
return $UACStatus
} # end function Get-UACStatus
You can call it via
Get-UACStatus
to see the status for the local machine, and
Get-UACStatus -Computer [computer name]
to see the status of a remote machine. Full help is available via
Get-Help Get-UACStatus
And if we need a little function to deal with enabling or disabling, for building into deployment scripts, we have this one, which includes functionality for rebooting:
function Set-UACStatus {
<#
.SYNOPSIS
Enables or disables User Account Control (UAC) on a computer.
.DESCRIPTION
Enables or disables User Account Control (UAC) on a computer.
.NOTES
Version : 1.0
Rights Required : Local admin on server
: ExecutionPolicy of RemoteSigned or Unrestricted
Author(s) : Pat Richard (pat@innervation.com)
Dedicated Post : http://www.ehloworld.com/1026
Disclaimer : You running this script means you won't blame me if this breaks your stuff.
.EXAMPLE
Set-UACStatus -Enabled [$true|$false]
Description
-----------
Enables or disables UAC for the local computer.
.EXAMPLE
Set-UACStatus -Computer [computer name] -Enabled [$true|$false]
Description
-----------
Enables or disables UAC for the computer specified via -Computer.
.LINK
http://www.ehloworld.com/1026
.INPUTS
None. You cannot pipe objects to this script.
#Requires -Version 2.0
#>
param(
[cmdletbinding()]
[parameter(ValueFromPipeline = $false, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
[string]$Computer = $env:ComputerName,
[parameter(ValueFromPipeline = $false, ValueFromPipelineByPropertyName = $true, Mandatory = $true)]
[bool]$enabled
)
[string]$RegistryValue = "EnableLUA"
[string]$RegistryPath = "Software\Microsoft\Windows\CurrentVersion\Policies\System"
$OpenRegistry = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine,$Computer)
$Subkey = $OpenRegistry.OpenSubKey($RegistryPath,$true)
$Subkey.ToString() | Out-Null
if ($enabled -eq $true){
$Subkey.SetValue($RegistryValue, 1)
}else{
$Subkey.SetValue($RegistryValue, 0)
}
$UACStatus = $Subkey.GetValue($RegistryValue)
$UACStatus
$Restart = Read-Host "`nSetting this requires a reboot of $Computer. Would you like to reboot $Computer [y/n]?"
if ($Restart -eq "y"){
Restart-Computer $Computer -force
Write-Host "Rebooting $Computer"
}else{
Write-Host "Please restart $Computer when convenient"
}
} # end function Set-UACStatus
Call it via
Set-UACStatus -Computer [computer name] -Enabled [$true|$false]
And, like Get-UACStatus, full help is available via
Get-Help Set-UACStatus
Update Rollup 1 (UR1) for Exchange Server 2010 SP2 released
Microsoft has released the following update rollup for Exchange Server 2010:
- Update Rollup 1 for Exchange Server 2010 SP2 (2645995)
If you’re running Exchange Server 2010 SP2, you need to apply Update Rollup 1 for Exchange 2010 to address the issues listed below.
Remember, you only need to download the latest update for the version of Exchange that you’re running.
Here is a list of the fixes included in update rollup 1:
- 2465015 You cannot view or download an image on a Windows Mobile-based device that is synchronized with an Exchange Server 2010 mailbox
- 2492066 An automatic reply message is still sent after you clear the “Allow automatic replies” check box for a remote domain on an Exchange Server 2010 server
- 2492082 An Outlook 2003 user cannot view the free/busy information of a resource mailbox in a mixed Exchange Server 2010 and Exchange Server 2007 environment
- 2543850 A GAL related client-only message rule does not take effect in Outlook in an Exchange Server 2010 environment
- 2545231 Users in a source forest cannot view the free/busy information of mailboxes in a target forest in an Exchange Server 2010 environment
- 2549255 A meeting item displays incorrectly as multiple all-day events when you synchronize a mobile device on an Exchange Server 2010 mailbox
- 2549286 Inline contents disposition is removed when you send a “Content-Disposition: inline” email message in an Exchange Server 2010 environment
- 2556113 It takes a long time for a user to download an OAB in an Exchange Server 2010 organization
- 2557323 Problems when viewing an Exchange Server 2003 user’s free/busy information in a mixed Exchange Server 2003 and Exchange Server 2010 environment
- 2563245 A user who has a linked mailbox cannot use a new profile to access another linked mailbox in an Exchange Server 2010 environment
- 2579051 You cannot move certain mailboxes from an Exchange Server 2003 server to an Exchange Server 2010 server
- 2579982 You cannot view the message delivery report of a signed email message by using Outlook or OWA in an Exchange Server 2010 environment
- 2585649 The StartDagServerMaintenance.ps1 script fails in an Exchange Server 2010 environment
- 2588121 You cannot manage a mail-enabled public folder in a mixed Exchange Server 2003 and Exchange Server 2010 environment
- 2589982 The cmdlet extension agent cannot process multiple objects in a pipeline in an Exchange Server 2010 environment
- 2591572 ”Junk e-mail validation error” error message when you manage the junk email rule for a user’s mailbox in an Exchange Server 2010 environment
- 2593011 Warning 2074 and Error 2153 are logged on DAG member servers in an Exchange Server 2010 environment
- 2598985 You cannot move a mailbox from a remote legacy Exchange forest to an Exchange Server 2010 forest
- 2599434 A Public Folder Calendar folder is missing in the Public Folder Favorites list of an Exchange Server 2010 mailbox
- 2599663 The Exchange RPC Client Access service crashes when you send an email message in an Exchange Server 2010 environment
- 2600034 A user can still open an IRM-protected email message after you remove the user from the associated AD RMS rights policy template in an Exchange Server 2010 environment
- 2600289 A user in an exclusive scope cannot manage his mailbox in an Exchange Server 2010 environment
- 2600943 EMC takes a long time to return results when you manage full access permissions in an Exchange Server 2010 organization that has many users
- 2601483 “Can’t open this item” error message when you use Outlook 2003 in online mode in an Exchange Server 2010 environment
- 2604039 The MSExchangeMailboxAssistants.exe process crashes frequently after you move mailboxes that contain IRM-protected email messages to an Exchange Server 2010 SP1 mailbox server
- 2604713 ECP crashes when a RBAC role assignee tries to manage another user’s mailbox by using ECP in an Exchange Server 2010 environment
- 2614698 A display name that contains DBCS characters is corrupted in the “Sent Items” folder in an Exchange Server 2010 environment
- 2616124 Empty message body when replying to a saved message file in an Exchange Server 2010 SP1 environment
- 2616230 IMAP4 clients cannot log on to Exchange Server 2003 servers when the Exchange Server 2010 Client Access server is used to handle proxy requests
- 2616361 Multi-Mailbox Search fails if the MemberOfGroup property is used for the management scope in an Exchange Server 2010 environment
- 2616365 Event ID 4999 when the Store.exe process crashes on an Exchange Server 2010 mailbox server
- 2619237 Event ID 4999 when the Exchange Mailbox Assistants service crashes in Exchange 2010
- 2620361 An encrypted or digitally-signed message cannot be printed when S/MIME control is installed in OWA in an Exchange Server 2010 SP1 environment
- 2620441 Stop-DatabaseAvailabilityGroup or Start-DatabaseAvailabilityGroup cmdlet fails when run together with the DomainController parameter in an Exchange Server 2010 environment
- 2621266 An Exchange Server 2010 database store grows unexpectedly large
- 2621403 “None” recipient status in Outlook when a recipient responds to a meeting request in a short period of time in an Exchange Server 2010 environment
- 2628154 ”The action couldn’t be completed. Please try again.” error message when you use OWA to perform an AQS search that contains “Sent” or “Received” in an Exchange Server 2010 SP1 environment
- 2628622 The Microsoft Exchange Information Store service crashes in an Exchange Server 2010 environment
- 2628693 Multi-Mailbox Search fails if you specify multiple users in the “Message To or From Specific E-Mail Addresses” option in an Exchange Server 2010 environment
- 2629713 Incorrect number of items for each keyword when you search for multiple keywords in mailboxes in an Exchange Server 2010 environment
- 2629777 The Microsoft Exchange Replication service crashes on Exchange Server 2010 DAG members
- 2630708 A UM auto attendant times out and generates an invalid extension number error message in an Exchange Server 2010 environment
- 2630967 A journal report is not sent to a journaling mailbox when you use journaling rules on distribution groups in an Exchange Server 2010 environment
- 2632206 Message items rescanned in the background in an Exchange Server 2010 environment
- 2633044 The Number of Items in Retry Table counter displays an incorrect value that causes SCOM alerts in an Exchange Server 2010 SP1 organization
- 2639150 The MSExchangeSyncAppPool application pool crashes in a mixed Exchange Server 2003 and Exchange Server 2010 environment
- 2640218 The hierarchy of a new public folder database does not replicate on an Exchange Server 2010 SP1 server
- 2641077 The hierarchy of a new public folder database does not replicate on an Exchange Server 2010 SP1 server
- 2642189 The RPC Client Access service may crash when you import a .pst file by using the New-MailboxImportRequest cmdlet in an Exchange Server 2010 environment
- 2643950 A seed operation might not succeed when the source mailbox database has many log files in a Microsoft Exchange Server 2010 DAG
- 2644047 Active Directory schema attributes are cleared after you disable a user’s mailbox in an Exchange Server 2010 environment
- 2644264 Disabling or removing a mailbox fails in an Exchange Server 2010 environment that has Office Communications Server 2007, Office Communications Server 2007 R2 or Lync Server 2010 deployed
- 2648682 An email message body is garbled when you save or send the email message in an Exchange Server 2010 environment
- 2649727 Client Access servers cannot serve other Mailbox servers when a Mailbox server encounters a problem in an Exchange Server 2010 environment
- 2649734 Mailbox replication latency may occur when users perform a Multi-Mailbox Search function against a DAG in an Exchange Server 2010 environment
- 2649735 Warning of undefined recipient type of a user after the linked mailbox is moved from an Exchange Server 2007 forest to an Exchange Server 2010 forest
- 2652849 The MailboxCountQuota policy is not enforced correctly in an Exchange Server 2010 hosting mode
- 2665115 Event ID 4999 is logged on an Exchange Server 2010 Client Access server (CAS)
Download the rollup here.
Installation Notes:
If you haven’t installed Exchange 2010 yet, you can use the info at Quicker Exchange installs complete with service packs and rollups to save you some time.
Update Rollups should be applied to Internet facing Client Access Servers before being installed on non-Internet facing Client Access Servers.
If you’re installing the update rollup on Exchange 2010 servers that don’t have Internet access, see “Installing Exchange 2007 & 2010 rollups on servers that don’t have Internet access” for some additional steps.
Also, the installer and Add/Remove Programs text is only in english – even when being installed on non-english systems.
Note to Forefront users:
If you don’t disable Forefront before installing a rollup or service pack, and enable afterwards, you run the risk of Exchange related services not starting. You can disable Forefront by going to a command prompt and navigating to the Forefront directory and running FSCUtility /disable. To enable Forefront after installation of a UR or SP, run FSCUtility /enable.
February 2012 Technical Rollup: Unified Communications
News
Premier
OpsVault — Operate and Optimize IT http://www.opsvault.com/
Microsoft Premier Support UK – Site Home – TechNet Blogs http://blogs.technet.com/b/mspremuk/
Antigen & Forefront
http://blogs.technet.com/forefront
http://blogs.technet.com/fssnerds
Exchange
http://blogs.technet.com/msukucc
http://blogs.technet.com/b/msonline/
http://blogs.technet.com/b/msonline/
Hosted Messaging Collaboration
None
Lync, Office Communication Server & LiveMeeting
NextHop – Site Home – TechNet Blogs http://blogs.technet.com/b/nexthop/
Outlook
http://blogs.msdn.com/outlook/
Other
http://technet.microsoft.com/en-us/office/ocs/ee465814.aspx
http://blogs.technet.com/themasterblog
Documents
Antigen & Forefront
None
Exchange
- Microsoft Exchange Server 2010 Install Guide Templates You can use these templates as a starting point for formally documenting your organization’s server build procedures for servers that will have Microsoft Exchange Server 2010 server roles installed on them. http://www.microsoft.com/download/en/details.aspx?id=17206
- Migrating Exchange from HMC 4.5 to Exchange Server 2010 SP2 This file contains a white paper and PowerShell scripts to provide the recommended and supported migration path from HMC 4.5 to Microsoft Exchange Server 2010 SP2. The steps in this guide may also be helpful when migrating from non-HMC environments that have configured some form of multi-tenancy. http://www.microsoft.com/download/en/details.aspx?id=28714
Hosted Messaging Collaboration
None
Lync, Office Communication Server & LiveMeeting
- Microsoft Office 365 Service Descriptions and Service Level Agreements for Dedicated Subscription Plans Microsoft Office 365 for enterprises provides powerful cloud-based solutions for e-mail, collaboration, instant messaging and web conferencing. The Office 365 dedicated plans deliver these services from a highly reliable network of Microsoft data centers on servers systems dedicated to individual customer—enabling customers to use the latest productivity applications while reducing IT overhead. http://www.microsoft.com/download/en/details.aspx?id=18128
- Unified Communications Phones and Peripherals Datasheets These datasheets list the phones and peripheral devices that are qualified to display the “Optimized for Microsoft Lync” logo. http://www.microsoft.com/download/en/details.aspx?id=16857
- Microsoft Lync Server 2010 Multitenant Pack for Partner Hosting Deployment Guide Microsoft Lync Server 2010 Multitenant Pack for Partner Hosting Deployment GuideThe Microsoft Lync Server 2010 Multitenant Pack for Partner Hosting is an extension of Microsoft Lync Server 2010 software that is designed to allow service providers and system integrators to customize a Lync Server 2010 deployment and offer it as a service to their customers. This guide describes how to deploy and configure a basic architecture. http://www.microsoft.com/download/en/details.aspx?id=28587
- Live Meeting-To-Lync Transition Resources Resources included in this download package are designed to support your organization’s Live Meeting Service to Lync (Server or Online) transition planning. This download will be updated with additional resources as available. http://www.microsoft.com/download/en/details.aspx?id=26494
Outlook
- Microsoft Office for Mac 2011: Training Tutorials and Videos The Office for Mac 2011 training downloads include Portable Document Format (.pdf) and PowerPoint (.pptx) versions of all Office 2011 tutorials and videos. To access the same training online, visit www.microsoft.com/mac/how-to. http://www.microsoft.com/download/en/details.aspx?id=19790
- Microsoft Exchange and Microsoft Outlook Standards Documentation The Microsoft Exchange and Microsoft Outlook standards documentation describes how Exchange and Outlook support industry messaging standards and Requests for Comments (RFCs) documents about iCalendar, Internet Message Access Protocol – Version 4 (IMAP4), and Post Office Protocol – Version 3 (POP3). http://www.microsoft.com/download/en/details.aspx?id=13800
Other
None
Downloads
Antigen & Forefront
None
Exchange
- Update Rollup 6 for Exchange Server 2007 Service Pack 3 (KB2608656) http://www.microsoft.com/download/en/details.aspx?id=28751
- Microsoft Online Services Migration Tools (64 bit) Use this tool to support migration of Microsoft Exchange to Microsoft Online Services. http://www.microsoft.com/download/en/details.aspx?id=7013
- Microsoft Online Services Migration Tools (32 bit) Use this tool to support migration of Microsoft Exchange to Microsoft Online Services. http://www.microsoft.com/download/en/details.aspx?id=5015
- Microsoft Exchange PST Capture Microsoft Exchange PST Capture is used to discover and import .pst files into Exchange Server or Exchange Online http://www.microsoft.com/download/en/details.aspx?id=28767
Hosted Messaging Collaboration
None
Lync, Office Communication Server & LiveMeeting
- Lync 2010 Hotfix KB 2670498 (64 bit) http://www.microsoft.com/download/en/details.aspx?id=14490
- Lync 2010 Hotfix KB 2670498 (32 bit) http://www.microsoft.com/download/en/details.aspx?id=25055
- VHD Test Drive – Lync Server 2010 VHD (Dev) This download comes as a pre-configured set of VHD’s. This download enables you to fully evaluate the Microsoft Lync 2010 and Microsoft Exchange 2010 developer platform including the Microsoft Lync 2010 SDK, the Exchange Web Services Managed API 1.1 as well as the Microsoft Lync Server 2010 SDK and the Microsoft Unified Communications Managed API 3.0. http://www.microsoft.com/download/en/details.aspx?id=28350
- Microsoft Office Communications Server 2007 R2 Hotfix KB 968802 http://www.microsoft.com/download/en/details.aspx?id=19178
- Microsoft Office Communications Server 2007 R2 Group Chat Hotfix KB 2647090 http://www.microsoft.com/download/en/details.aspx?id=12180
- Microsoft Office Communicator 2007 R2 Hotfix KB 2647093 http://www.microsoft.com/download/en/details.aspx?id=21547
Outlook
- Microsoft Outlook Social Connector Provider for Facebook Connect your Facebook account to the Outlook Social Connector and stay up to the minute with the people in your network by accessing everything from e-mail threads to status updates in one single, centralized view. http://www.microsoft.com/download/en/details.aspx?id=5039
- Microsoft Dynamics CRM 2011 for Microsoft Office Outlook (Outlook Client) Install Microsoft Dynamics CRM for Outlook, also known as the CRM 2011 Outlook client. Microsoft Dynamics CRM for Outlook enables access to your Microsoft Dynamics CRM data through Outlook. http://www.microsoft.com/download/en/details.aspx?id=27821
- Update for Microsoft Office Outlook 2003 Junk Email Filter (KB2597098) This update provides the Junk E-mail Filter in Microsoft Office Outlook 2003 with a more current definition of which e-mail messages should be considered junk e-mail. http://www.microsoft.com/download/en/details.aspx?id=28602
Other
Events/Webcasts
- Exchange 2010 Microsoft Certified Masters (MCM) Training & Certification Overview 15 February 2012 09:00 Time zone: (GMT-08:00) Pacific Time (US & Canada) Communication drives business. Whether onsite or in the cloud, Microsoft Exchange Server 2010 is a critical infrastructure to ensure availability and security of an organization’s email, calendar, and contacts. Microsoft Certified Masters (MCMs) who are certified on Exchange Server 2010 are specialists in the design, migration, implementation, and optimization of the mail experience across multiple devices—which in turn helps lower messaging costs and helps ensure availability and security. All Microsoft Certified Masters on Exchange Server 2010 become an immediate part of an exclusive community of experts that includes fellow graduates and members of the Exchange Server product group as well as valuable resources to which they can contribute and from which they can draw the collective knowledge of that community at any time. At this event, MCM Program Management will provide a detailed overview for potential candidates and their sponsors. https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032504857&culture=en-GB
New KBs
Antigen & Forefront
None
Microsoft Forefront Online Protection for Exchange
- How to troubleshoot Higher Risk Delivery Pool email delivery issues in Forefront Online Protection for Exchange http://support.microsoft.com/kb/2655834
Exchange
Microsoft Exchange Server 2003 Enterprise Edition
- Event 1005 or 1013 is logged when you try to start an HTTP resource in an Exchange Server 2003 cluster http://support.microsoft.com/kb/2667815
Microsoft Exchange Server 2003 Service Pack 2
- The Information Store service does not start as expected in Exchange Server 2003 SP2 http://support.microsoft.com/kb/2667794
Microsoft Exchange Server 2003 Standard Edition
- How to troubleshoot public folder replication problems in Exchange 2000 Server and in Exchange Server 2003 http://support.microsoft.com/kb/842273
- Stop error code 0x000000D1 when Windows Server 2003 is under a heavy network load http://support.microsoft.com/kb/842840
Microsoft Exchange Server 2007 Enterprise Edition
- A SCOM 2007 SP1 server does not send out alerts when certain issues occur in an Exchange Server 2007 organization http://support.microsoft.com/kb/2633801
- A meeting reminder is set unexpectedly when you send an email message to an Exchange Server user http://support.microsoft.com/kb/945854
Microsoft Exchange Server 2007 Service Pack 3
- The week numbers displayed in OWA do not match the week numbers displayed in Outlook for English users and French users in an Exchange Server 2007 environment http://support.microsoft.com/kb/2289607
- “0×80041606″ error message when you perform a prefix search by using Outlook in online mode in an Exchange Server 2007 environment http://support.microsoft.com/kb/2498852
- An arrow icon does not appear after you change the email message subject by using OWA in an Exchange Server 2007 SP3 environment http://support.microsoft.com/kb/2499841
- A “System.ArgumentOutOfRangeException” exception occurs when you click the “Scheduling Assistant” tab in Exchange Server 2007 OWA http://support.microsoft.com/kb/2523695
- Users in a source forest cannot view the free/busy information of mailboxes in a target forest when the cross-forest Availability service is configured between two Exchange Server 2007 forests http://support.microsoft.com/kb/2545080
- Applications or services that depend on the Remote Registry service may stop working in an Exchange Server 2007 environment http://support.microsoft.com/kb/2571391
- The Microsoft Exchange Information Store service may crash after you run the Test-ExchangeSearch cmdlet in an Exchange Server 2007 environment http://support.microsoft.com/kb/2572010
- A journaling report remains in the submission queue when an email message is delivered successfully in an Exchange Server 2007 environment http://support.microsoft.com/kb/2591655
- The PidLidClipEnd property of a recurring meeting request has an incorrect value in an Exchange Server 2007 environment http://support.microsoft.com/kb/2598980
- An Outlook Anywhere client loses connection when a GC server restarts in an Exchange Server 2007 environment http://support.microsoft.com/kb/2616427
- Journal reports are expired or lost when the Microsoft Exchange Transport service is restarted in an Exchange Server 2007 environment http://support.microsoft.com/kb/2617784
- Certain changes to address lists may not be updated in an Exchange Server 2007 environment http://support.microsoft.com/kb/2626217
- The Exchange IMAP4 service may stop responding on an Exchange Server 2007 Client Access server when users access mailboxes that are hosted on Exchange Server 2003 servers http://support.microsoft.com/kb/2629790
- The update tracking information option does not work in an Exchange Server 2007 environment http://support.microsoft.com/kb/2641312
- The reseed process is unsuccessful on the SCR passive node when the circular logging feature is enabled in an Exchange Server 2007 environment http://support.microsoft.com/kb/2653334
- An Exchange Server 2007 Client Access server responds slowly or stops responding when users try to synchronize Exchange ActiveSync devices with their mailboxes http://support.microsoft.com/kb/2656040
- The “PidLidClipEnd” property of a no ending recurring meeting request is set to an incorrect value in an Exchange Server 2007 environment http://support.microsoft.com/kb/2658613
- The Microsoft Exchange Information Store service may stop responding on an Exchange Server 2007 server http://support.microsoft.com/kb/914533
- The scroll bar does not work in OWA when there are more than 22 all-day event calendar items in an Exchange Server 2007 user’s calendar http://support.microsoft.com/kb/976977
Microsoft Exchange Server 2010 Coexistence
- How to extend the Active Directory schema for the Hierarchical Address Book (HAB) on an Exchange Server 2010 server http://support.microsoft.com/kb/973788
Microsoft Exchange Server 2010 Enterprise
- The Seniority Index feature in the Hierarchical Address Book does not work as expected in Exchange Server 2010 http://support.microsoft.com/kb/2448288
Microsoft Exchange Server 2010 Standard
- Exchange Server 2010 databases grow very large when the Calendar Snapshot feature is enabled http://support.microsoft.com/kb/2661071
- Error message when you try to install Exchange Server 2010 SP2: “AuthorizationManager check failed” http://support.microsoft.com/kb/2668686
Lync, Office Communication Server & LiveMeeting
Microsoft Office Communications Server 2007 R2 Group Chat client
- Description of the update for the Office Communications Server 2007 R2 Group Chat client: January, 2012 http://support.microsoft.com/kb/2647089
- The “Send an Instant Message” menu does not start Office Communicator on a terminal server in an Office Communications Server 2007 R2, Group Chat client http://support.microsoft.com/kb/2653953
Microsoft Office Communications Server 2007 R2 Group Chat server
- Description of the cumulative update for Office Communications Server 2007 R2 Group Chat server: January, 2012 http://support.microsoft.com/kb/2647090
- The Channel service stops when a user signs in to a Group Chat client in Office Communications Server 2007 R2 Group Chat http://support.microsoft.com/kb/2647095
Microsoft Office Communications Server 2007 R2 Standard Edition
- Description of the cumulative update for Office Communications Server 2007 R2, Unified Communications Managed API 2.0 Core Redist 64-bit: January, 2012 http://support.microsoft.com/kb/2647091
Microsoft Office Communicator 2007 R2
- Description of the cumulative update package for Communicator 2007 R2: January 2012 http://support.microsoft.com/kb/2647093
- The file name and icon do not display when you send files in Office Communicator 2007 R2 http://support.microsoft.com/kb/2653950
Outlook
Microsoft Office Outlook 2003
- Description of the Outlook 2003 Junk Email Filter update: January 10, 2012 http://support.microsoft.com/kb/2597098
- Search Folders created in Outlook do not appear in Outlook Web Access http://support.microsoft.com/kb/831400
Microsoft Outlook 2010
- Outlook 2010: How to troubleshoot crashes in Outlook http://support.microsoft.com/kb/2632425
- An email message is stuck in the Microsoft Outlook 2010 Outbox. http://support.microsoft.com/kb/2663435
- “Unsupported folder class” error when Outlook starts http://support.microsoft.com/kb/2668932
January 2012 Technical Rollup: Unified Communications
News
Premier
OpsVault — Operate and Optimize IT
http://www.opsvault.com
Microsoft Premier Support UK – Site Home – TechNet Blogs
http://blogs.technet.com/b/mspremuk/
Antigen & Forefront
Forefront Team Blog – Site Home – TechNet Blogs
http://blogs.technet.com/b/forefront
Forefront Server Security Support Blog – Site Home – TechNet Blogs
http://blogs.technet.com/b/fssnerds
Exchange
Exchange Team Blog – Site Home – TechNet Blogs
http://blogs.technet.com/b/exchange/
MCS UK Unified Communications Blog – Site Home – TechNet Blogs
http://blogs.technet.com/b/msukucc
Hosted Messaging Collaboration
Lync, Office Communication Server & LiveMeeting
NextHop – Site Home – TechNet Blogs http://blogs.technet.com/b/nexthop/
Lync Team Blog – Site Home – TechNet Blogs http://blogs.technet.com/b/lync/
Outlook
http://blogs.msdn.com/b/outlook/default.aspx
Other
NextHop – Site Home – TechNet Blogs http://blogs.technet.com/b/nexthop/
The Master Blog – Site Home – TechNet Blogs http://blogs.technet.com/b/themasterblog
Events/Webcasts
Unleash Your Productivity – Delivering a Great First Impression with Exchange 2010
January 27, 2012 2:00PM Eastern / 11:00AM Pacific
Are you interested in Microsoft productivity solutions and would like to hear more about the technology directly from Microsoft? Join us for 60 minutes to hear Microsoft technology experts deliver information on the latest Microsoft technologies, solution demos and product tips and tricks!
Microsoft Office System Webcast: Outlook 2010: Use Contacts as More Than Just an Address Book (Level 200)
Tuesday, January 31, 2012 9:00 AM Time zone: (GMT-08:00) Pacific Time (US & Canada)
See how contacts in Microsoft Outlook 2010 can be more than just an email address book. Use your Contacts folder to store email addresses, street addresses, multiple phone numbers, pictures, logos, and any other information that relates to a contact. Create and share distribution lists, and learn how Outlook 2010 also supports vCards (virtual business cards). Additionally, see how tasks can simplify your life by helping you create and manage easy to-do lists in Outlook 2010. This webcast covers the following topics:
- Creating and managing contacts and distribution lists
- Working with contacts as electronic business cards
- Sharing contacts and distribution lists
- Setting your default address book
- Creating tasks from email messages
- Keeping track of your to-do lists with tasks
- Advanced calendar options
New KBs
Antigen & Forefront
- Microsoft Forefront Online Protection for Exchange: How Exchange Hosted Archive handles blind carbon copy (Bcc) recipients http://support.microsoft.com/kb/2653006
Exchange
Microsoft Exchange Server 2003 Enterprise Edition:
- Exchange ActiveSync and Outlook Mobile Access errors occur when SSL or forms-based authentication is required for Exchange Server 2003 http://support.microsoft.com/kb/817379
Microsoft Exchange Server 2003 Standard Edition:
- How to troubleshoot public folder replication problems in Exchange 2000 Server and in Exchange Server 2003 http://support.microsoft.com/kb/842273
Microsoft Exchange Server 2007 Enterprise Edition:
- A meeting reminder is set unexpectedly when you send an email message to an Exchange Server user http://support.microsoft.com/kb/945854
Microsoft Exchange Server 2010 Coexistence:
How to extend the Active Directory schema for the Hierarchical Address Book (HAB) on an Exchange Server 2010 server http://support.microsoft.com/kb/973788
Microsoft Exchange Server 2010 Enterprise:
- The Seniority Index feature in the Hierarchical Address Book does not work as expected in Exchange Server 2010 http://support.microsoft.com/kb/2448288
- The Exchange Server is not a member of Exchange Trusted Subsystem http://support.microsoft.com/kb/2655050
- Some e-mail messages become stuck in an Exchange Server environment http://support.microsoft.com/kb/979175
Microsoft Exchange Server 2010 Standard:
- Exchange Server 2010 databases grow very large when the Calendar Snapshot feature is enabled http://support.microsoft.com/kb/2661071
Outlook
Microsoft Office Outlook 2003:
- Description of the Outlook 2003 Junk Email Filter update: December 13, 2011 http://support.microsoft.com/kb/2597035
Microsoft Office Outlook 2007:
- Description of the Outlook 2007 hotfix package (Outlook-x-none.msp, Outlook-en-us.msp): December 13, 2011 http://support.microsoft.com/kb/2596985
- The sort order may be incorrect for e-mail messages that you sort by size in Outlook 2007 http://support.microsoft.com/kb/919200
Microsoft Outlook 2010:
- No prompt for credentials when you start Outlook 2010 as an initial application in RDP or as a published application in Citrix Zen http://support.microsoft.com/kb/2596960
- Description of the Outlook 2010 hotfix package (x86 Outlookintl-de-de.msp, x64 Outlookintl-de-de.msp): December 13, 2011 http://support.microsoft.com/kb/2597001
- Description of the Outlook 2010 hotfix package (x86 Outlookintl-xx-xx.msp, x64 Outlookintl-xx-xx.msp): December 13, 2011 http://support.microsoft.com/kb/2597012
- “Could not connect to server” error message in the Outlook Social Connector http://support.microsoft.com/kb/2597026
- Smart cards are not supported in Outlook 2010 when you access your mailbox by using Outlook Anywhere (RPC/HTTP) http://support.microsoft.com/kb/2597028
- “The operation failed” error message when you try to book a resource mailbox from a shared calendar by using Outlook 2010 http://support.microsoft.com/kb/2597037
- Description of the Outlook 2010 hotfix package (x86 Outlook-x-none.msp, x64 Outlook-x-none.msp, Outlookintl-xx-xx.msp): December 13, 2011 http://support.microsoft.com/kb/2597061
- You receive unexpected results when you search lots of subfolders in Outlook 2010 http://support.microsoft.com/kb/2654234
- Certain appointments that are scheduled to occur on Saturdays disappear from the Calendar view in Outlook 2010 http://support.microsoft.com/kb/2655312
- An email message is stuck in the Microsoft Outlook 2010 Outbox. http://support.microsoft.com/kb/2663435
What to expect at your first MVP Summit
Every year, there is a flurry of questions from newly minted MVPs about the annual MVP Summit. This year, more than 1,400 MVPs from 70+ countries will attend more than 760 sessions behind closed doors. As a veteran of at least a 1/2 dozen Summits, I’ve created this post to answer the commonly asked questions. Hopefully, it should provide a good bit of info on what to expect. Feel free to ask questions in the comments below. This is a living post.
Keep your MVP profile updated!
I can’t recommend enough about having your MVP profile up to date, especially the ”Expertise and Interests” section. This section dictates what session areas you may attend at the Summit. Update it NOW! Also, other MVPs can use your profile to contact you. The first year I attended, I viewed the profiles of other MVPs in my expertise (Exchange) to learn more about my colleagues. I’ve also had some recruiters and customers call after viewing my profile. The MVP profile can be quite beneficial.
What to bring
Here is a list of things you should bring:
- Camera – You’ll be meeting a lot of people, putting faces to names. There are a lot of social events and social networking opportunities in which to record the moment. Plus, there are some nice places to visit, or take pictures of, such as Mt. Ranier, Pike’s Place Market, etc.
- Business cards – As mentioned above, you’ll be meeting lots of people. If you’re in sales, tread lightly on the marketing push. Stick them in the back of your ID holder for easy access throughout the Summit.
- Cold weather clothing – Seattle weather during the Summit time frame can be predictable (rain), and unpredictable (snow). It’s generally fairly cold during the time of the Summit. Dress in layers to survive. Here is the weather forecast for the area.
- A tip from @NikitaP: Wear comfortable shoes. I agree. You’ll do a fair amount of walking, and lots of socializing while standing at the various events.
- A suitcase with extra space. You’ll get a Summit shirt, you’ll go to the company store, and some product groups give out gifts. There is also the public Microsoft Store at the Bellevue Square, a mall near the Summit hotels.
- Laptop or iPad for taking notes during technical sessions and keynotes. I recommend Microsoft OneNote, which is available on both the PC and iOS platforms.
- If you’re coming from another country, bring a suitable power adapter to use for your gear in the U.S.
- Your MVP number. If Microsoft hasn’t received your signed NDA form yet, you may be required to sign one before you’re allowed into the event. The form requires your MVP number.
- If you’re from outside the country, check your cell phone’s data plan and roaming limitations. Don’t get caught with an unexpected costly mobile bill.
Arrive early, stay late – dinners, parties and extra events
I recommend padding the summit time frame by a day on each end to allow for extra sight-seeing, additional events, and shopping.
Some product groups will have extra sessions, and those take place before or after the regular summit days. If your product group is doing this, you’ll know in advance.
There is a Welcome Reception, Summit Attendee party, a product group event (usually a dinner event), and generally some third-party events like Party with Palermo (a developer based event). Many of the various groups informally meet at local establishments during the evenings, as well. You’ll stay busy at this event, I guarantee!
The Attendee Party is being held at CenturyLink Field, home of the Seattle Seahawks NFL football team. Food, drink, and the chance to check out the facility, listen to live music, and socialize with other MVPs. Last year, you could play XBox in the locker rooms at the party at Safeco Field – lots of fun.
See the list of official events at http://www.2012mvpsummit.com/Agenda and other events at http://mvpsummitevents.info/
There is also a growing participation in GeekGive, a charity event, and MVPNation.
Keynote speeches
Note: There are no scheduled keynotes for Summit 2012. This section is for past and future reference.
There are Q&A sessions at the end of each. Here are some guidelines that will avoid people throwing things at you.
- Introduce yourself with your name and MVP area. Avoid anything else.
- Make it quick – ask a single question. I’m reminded of the scene in “Back to School” with Rodney Dangerfield where the professor says he “has but one question – in 27 parts”. Don’t hog the time, others have questions, too.
- And I hate to say this, but the fact is, if your English isn’t very strong, consider having someone else ask your question, or don’t ask at all. Every year, someone will ask some questions that very few people can understand. That leads to awkwardness and unanswered questions.
- Don’t ask deep technical questions. The people giving the keynote and answering questions aren’t likely going to know WHY Exchange isn’t running on SQL.
- Don’t ask for autographs.
- Don’t bring things to give to them. Those crazy Canadians started that and it got out of control one year (although they do look sharp in their red hockey jerseys).
Engaging the product group
There are some opportunities to engage the product group for your area of expertise. This includes during technical sessions, product group events like dinners, as well as unofficial events. Keep in mind that interaction with the product group should be handled professionally. While it’s important to discuss concerns, please respect their time and efforts. Remember, having access to the product group is a privilege, and you’d be surprised how quickly they stop answering your questions and requests for help if you’re constantly (or worse, publicly) berating of their accomplishments. Also keep in mind that not every person in the product group happens to be in the Redmond area during the Summit time frame. So don’t get angry if the person responsible for feature X isn’t there.
Company store
There is generally a trip to the company store. You’re generally given a voucher that allows you to spend up to a specific amount (100-150 bucks) OF YOUR OWN MONEY on licensed materials such as hardware and software. These are regular consumer products available at employee pricing. You cannot exceed the amount on the voucher, so don’t think you’re gonna get an XBox console on the cheap. The voucher is generally valid to purchase from a special site online as well, and have the items shipped to you. In the past, if you use part of the amount on your voucher, they take the voucher, and you can’t user “what’s left” of it. Choose accordingly.
You can purchase as much as you want of the other items, including clothing, bags, books, and other swag. As mentioned above, plan accordingly. Make sure you have room in your suitcase to take the stuff home. Nothing worse than getting a killer deal on something, then having to pay to check another bag on your flight home.
Internet access
Here’s the bad part. The WiFi inside the Microsoft buildings can be extremely sporadic due to the sheer demand. If you can tether via cell phone, or you have an air card/MiFi, keep those handy. Don’t plan on streaming videos, and even doing VPN connections can be very problematic over the guest WiFi.
Dress code
There isn’t one. Casual is generally what people wear, with the majority wearing jeans. Many people wear shirts and jerseys from previous Summits. See my comments above about dressing warm.
Car rentals
Don’t bother. It’s too expensive, and, unless you plan on doing a bunch of tourist stuff, you won’t use it. Keep in mind that hotels will charge you a horrendous fee to park each night.
Transportation
From the airport, take a taxi or shuttle bus. Many people will coordinate with others and split the bill. Some people recommend the Gray Line, and I’ve used Shuttle Express which typically makes stops at all of the hotels used by Summit attendees. I believe one-way trips are in the $20 range for both. In can easily take 30 minutes (with no traffic) to get from the airport to the hotels.
Transportation to/from hotels and official Summit locations including the Attendee Party, is provided by Microsoft. I believe information about that is listed on the Summit website. Many of the “hangouts” in the Bellevue area are all within walking distance from the hotels.
Social networking, NDAs, and such
It’s generally acceptable to mention where you are (check-in). But you are under NDA during the technical sessions, so don’t even THINK about posting ANYTHING you see or hear during official events such as keynotes, sessions, official events, etc. Microsoft monitors social networks during the event, and people have lost their MVP status in the past for tweeting/posting info that was covered by NDA. I would recommend not discussing technical information in public areas, either. Even product code names and internal reference names are taboo in public. I mentioned near the top about bringing cameras. Tread lightly here.
Lately, I’ve seen quite a few people win items simply by checking in via Foursquare when going to the public Microsoft Store. There is also a downtown Seattle badge on Foursquare.
Also, the MVP program has Facebook and Twitter feeds to follow (including the #MVP12 hashtag for the Summit, and #MVPBuzz for the program in general). The MVP program also has a blog.
Hotels
If you’re rooming with someone you haven’t roomed with before, and you snore, buy your roomie some drinks. Someone suggested bringing tennis balls they can lob at you to help stir you a little. Interesting suggestion.
Places of interest
Space Needle – Part of the Seattle skyline, visit the Space Needle and see forever from the observation deck.
Puget Sound Tour – This water based tour goes around Puget Sound and shows the visitor many interesting points of history, including the residence of Mr. Bill Gates.
The Museum of Flight – One of the MVP Summit events was held here a few years ago. Very fun and interesting. See a lot of airplanes from various generations and purposes.
Underground Tour – The Bill Speidel Undeground Tour is a leisurely, guided walking tour beneath Seattle’s sidewalks and streets. As you roam the subterranean passages that once were the main roadways and first-floor storefronts of old downtown Seattle, our guides regale you with the stories our pioneers didn’t want you to hear. It’s history with a twist!
Pike Place Market – See the fish throwing, visit the various markets, and have some food with a great view.
Misc
A great tip from @callkathy – Connect with people outside your expertise. Sit with other people on the bus and at meals.
Another great tip, this one from @AlvinAshcraft – Use FourSquare to find other MVPs.
The MVPAward group has created an article on a tour of the neighborhood for the Summit.
Have fun!
You will meet new friends, technical contacts, and people who will help you succeed. Have fun!
Ensure your PowerShell script is connected to Exchange 2010
When writing scripts that execute commands on an Exchange server, for Exchange 2010, it’s important to ensure that you’re running within a session connected to an Exchange server, and that all Exchange cmdlets are available. In Exchange 2007, we could load the Exchange snapins. But 2010 doesn’t use snapins. Some people would say that you can simply load the modules, but loading the modules bypasses RBAC, and is thus, not recommended. Mike Pfeiffer wrote a great article Managing Exchange 2010 with Remote PowerShell that sheds some light. It’s worth a read.
A solution around this is to run a PowerShell script that comes built into Exchange 2010. This makes available the Connect-ExchangeServer cmdlet, which will connect via remote PowerShell to Exchange. We can specify a server, or let the -auto option connect to the best server via autodiscover. New-ExchangeConnection is a function I wrote to connect:
function New-ExchangeConnection {
Write-Host "Checking for Exchange Management Shell"
$s = Get-PSSession | Where-Object {$_.ConfigurationName -eq 'Microsoft.Exchange'}
if (!($s)){
Write-Host "Exchange Management Shell not found - Loading..." -ForegroundColor Yellow
. "$env:ExchangeInstallPath\bin\RemoteExchange.ps1"
Write-Host "Exchange Management Shell loaded" -ForegroundColor green
Write-Host "Connecting to Exchange server"
Connect-ExchangeServer -auto
Write-Host "Connected to Exchange Server" -ForegroundColor green
}else{
Write-Host "Exchange Management Shell already loaded" -ForegroundColor Yellow
}
} # end function New-ExchangeConnection
I make use of dot sourcing the .ps1 script, then issue the Connect-ExchangeServer command. Calling this within your script will make ensuring that your script is running with access to Exchange cmdlets much simpler.
PowerShell function for loading and verifying modules
Often in my PowerShell scripts, I need to either load a specific module, or verify it’s loaded. Manually, of course, we can use Get-Module, Import-Module, etc. But in automation scripts, we need to programtically make sure the module is loaded or load it if it’s not. I wrote this function and it’s worked well for me. introducing Get-ModuleStatus:
function Get-ModuleStatus { # http://www.ehloworld.com/938
[CmdletBinding(SupportsShouldProcess=$true)]
param (
[parameter(ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Mandatory=$true, HelpMessage="No module name specified!")]
[string]$name
)
if(!(Get-Module -name "$name")) {
if(Get-Module -ListAvailable | ? {$_.name -eq "$name"}) {
Import-Module -Name "$name"
# Write-Host "module $name was imported"
return $true
} else {
# Write-Host "module $name was not available (Windows feature isn't installed)"
return $false
}
}else {
# Write-Host "module $name was already imported"
return $true
}
} # end function Get-ModuleStatus
Call it supplying the module name, such as
Get-ModuleStatus Lync
You can use logic such as
if (Get-ModuleStatus Lync){Write-Host "Lync module is loaded}else{Write-Host "Lync module is NOT loaded" -ForegroundColor red}
Simple and effective.
Download
v1.0 Get-ModuleStatus.ps1
Creating passwords with PowerShell
When creating new accounts, an admin needs to assign a password. We often then check the box to force a user to change their password when they logon for the first time. Some organizations will use a ‘default’ password for all new accounts. That’s fraught with security implications, and I’ve never recommended it. The downside is that you, as an admin, need to think up a password for each new account. I know how it is – you look around at things on your desk, items on the wall, looking for ideas. Then you have to make sure your super password meets your organizations password requirements, including length and complexity. Well, no more!
Enter New-Password. This function takes one simple input – length. It then spits out a password of said length, using upper and lower case letters, numbers, and punctuation, as well as a phonetic version. If you choose not to use some of the punctuation characters, feel free to just put a ‘#’ in front of that particular line.
function New-Password {
[CmdletBinding(SupportsShouldProcess=$true)]
param(
[int]$length
)
$password = -join ([Char[]]'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789%$!#^{}<>' | Get-Random -count $length)
Write-Host "`n$password`n" -ForegroundColor green
# Write-Host
ForEach ($character in [char[]]"$password"){
[string]$ThisLetter = $character
switch ($ThisLetter) {
a {$ThisWord = "alpha"}
b {$ThisWord = "bravo"}
c {$ThisWord = "charlie"}
d {$ThisWord = "delta"}
e {$ThisWord = "echo"}
f {$ThisWord = "foxtrot"}
g {$ThisWord = "golf"}
h {$ThisWord = "hotel"}
i {$ThisWord = "india"}
j {$ThisWord = "juliett"}
k {$ThisWord = "kilo"}
l {$ThisWord = "lima"}
m {$ThisWord = "mike"}
n {$ThisWord = "november"}
o {$ThisWord = "oscar"}
p {$ThisWord = "papa"}
q {$ThisWord = "quebec"}
r {$ThisWord = "romeo"}
s {$ThisWord = "sierra"}
t {$ThisWord = "tango"}
u {$ThisWord = "uniform"}
v {$ThisWord = "victor"}
w {$ThisWord = "whiskey"}
x {$ThisWord = "xray"}
y {$ThisWord = "yankee"}
z {$ThisWord = "zulu"}
1 {$ThisWord = "one"}
2 {$ThisWord = "two"}
3 {$ThisWord = "three"}
4 {$ThisWord = "four"}
5 {$ThisWord = "five"}
6 {$ThisWord = "six"}
7 {$ThisWord = "seven"}
8 {$ThisWord = "eight"}
9 {$ThisWord = "nine"}
0 {$ThisWord = "zero"}
! {$ThisWord = "!"}
$ {$ThisWord = "$"}
% {$ThisWord = "%"}
^ {$ThisWord = "^"}
* {$ThisWord = "*"}
- {$ThisWord = "-"}
_ {$ThisWord = "_"}
: {$ThisWord = ":"}
`; {$ThisWord = ";"}
`{ {$ThisWord = "{"}
`} {$ThisWord = "}"}
`/ {$ThisWord = "/"}
`< {$ThisWord = "<"}
`> {$ThisWord = ">"}
`# {$ThisWord = "#"}
`{ {$ThisWord = "{"}
`} {$ThisWord = "}"}
}
if ($ThisLetter -cmatch $ThisLetter.ToUpper()){
$ThisWord = $ThisWord.ToUpper()
}
Write-Host "$ThisWord " -NoNewLine -ForegroundColor yellow
}
Write-Host "`n"
} # end function New-Password
Now, stick that function in your PowerShell profile. Each time you need a new password, use
New-Password -length [number]
such as
New-Password -length 12
And you now have a password to use.





Follow Me