Archive for April, 2010

Exchange Server 2010: Mobile Messaging

Friday, April 30th, 2010

When Exchange Server 2007 was released, mobile messaging was at best in its adolescence. Most mobile messaging users at that time were signed up with the BlackBerry service as the only viable option for enterprise level mobile messaging (34 million subscribers). Today, as we see so much with modern technology, people seem to be unable to live without getting their e-mail on their phone. So let’s see what Exchange Server 2010 now brings to the table.

One of the things that I like the most is that Exchange now is able to automatically synchronize with mobile devices over the cellular signal. Of course this is expected for messages, but Exchange also syncs up calendar items and contacts to make sure that users always has the most up to date information. Taking this even further, Exchange Server 2010 also gives users access to unified messaging features, allowing them to access their work voice mail from the mail application, and use speech-to-text voice mail preview the voice mail messages. Using Exchange ActiveSync over the air, you can also now see free/busy information in real time when checking a contact’s calendar availability allowing you to schedule meetings on the fly.

The mobile client also now is able to search the user’s entire mailbox for specific messages. This is cool because the typical user will only want to store their most recent few hundred messages at most on the device (so don’t run out of storage space). With Exchange ActiveSync, the search is sent from the mobile device to the server, where the search is performed, and then the results are returned to the phone.

Now to take advantage of all the new mobile messaging features, the users must be using a device running Windows Mobile 6.1 or later. All the features are automatically available to the users without any additional installation or configuration once Exchange 2010 is deployed in the organization.

Share

Using Windows PowerShell as an IT Pro – Part 17

Thursday, April 22nd, 2010

In my last post I looked at some Comparison Operators. Now I will examine some more Comparison Operators.

Greater than and Less than operators

The greater than operator (-gt) returns a value of TRUE or the matches when one or more of the input values is greater than the specified pattern. The less than operator (-lt) returns a value of TRUE or the matches when one or more of the input values is less than the specified pattern. When the ‘or equals to’ operators (-ge, -le) are used, they also compare to see if the value is equal to the specified pattern.

The following examples show the effects of these operators.

8 -gt 7

CompOper05

8 -ge 8

CompOper06

"c" -lt "a"

CompOper07

"a" -le "c"

CompOper08

1, 2, 3 -le 2

CompOper09

Containment Operators

The containment operators (-contains and -notcontains) are similar to the equality operators. However, the containment operators always return a Boolean value, even when the input is a collection.

Also, unlike the equality operators, the containment operators return a value as soon as they detect the first match. The equality operators evaluate all input and then return all the matches in the collection. In a very large collection, the -contains operator returns results quicker than the equal to operator. The following examples show the effect of the -contains operator.

1, 2, 3 -contains 2

CompOper10

"PowerShell" -contains "Shell"

CompOper11

"Windows", "PowerShell" -notcontains "Shell"

CompOper12

In my next post we will finish looking at Comparison Operators.

Share

Using Windows PowerShell as an IT Pro – Part 16

Friday, April 16th, 2010

In my last post I looked at Assignment Operators. Now I will examine Comparison Operators.

Comparison operators let you specify conditions for comparing values and finding values that match specified patterns. To use a comparison operator, specify the values that you want to compare together with an operator that separates these values.

By default, all comparison operators are case-insensitive. To make a comparison operator case-sensitive, precede the operator name with a "c". For example, the case-sensitive version of "-eq" is "-ceq". To make the case-insensitivity explicit, precede the operator with an "i". For example, the explicitly case-insensitive version of "-eq" is "ieq".

All comparison operators except the containment operators (-contains, -notcontains) and type operators (-is, -isnot) return a Boolean value when the input to the operator (the value on the left side of the operator) is a single value (a scalar). When the input is a collection of values, the containment operators and the type operators return any matching values. If there are no matches in a collection, these operators do not return anything. The containment operators and type operators always return a Boolean value.

Windows PowerShell supports the following comparison operators.

Operator

Description

-eq

Equal to. Includes an identical value.

-ne

Not equal to. Includes a different value.

-gt

Greater-than.

-ge

Greater-than or equal to.

-lt

Less-than.

-le

Less-than or equal to.

-like

Match using the wildcard character (*).

-notlike

Does not match using the wildcard character (*).

-match

Matches a string using regular expressions. When the input is scalar, it populates the $Matches automatic variable.

-notmatch

Does not match a string. Uses regular expressions. When the input is scalar, it populates the $Matches automatic variable.

-contains

Containment operator. Includes an identical value that is not part of a value. Always returns a Boolean value.

-notcontains

Containment operator. Does not include an identical value. Always returns Boolean.

-replace

Replace operator. Changes the specified elements of a value.

Equality Operators

The equality operators (-eq, -ne) return a value of TRUE or matches when one or more of the input values is identical to the specified pattern. The entire pattern must match an entire value.

The following examples show the effect of the equal to operator:

"a" -eq "A"

CompOper01

"a" -ceq "A"

CompOper02

1, 2, 3 -eq 2

CompOper03

"Power" -ne "Shell"

CompOper04

In my next post we will examine more Comparison Operators.

Share

Exchange 2010 Server Roles

Monday, April 12th, 2010

Exchange server roles were introduced three years ago with Exchange Server 2007 as a way to group specific Exchange management tasks together often on separate dedicated servers. Think of Exchange Server roles as similar to the Windows Server server roles, you CAN run all the roles on the same server, but generally it is not a good idea in anything other than the smallest deployments. For example, if you download the Hyper-V Evaluation VHD for Exchange 2010 testing, that server has all the roles installed on a single virtual machine.

The server role groups a set of features and components which perform specific functions in the messaging infrastructure. By using server roles you are able to reduce the attack surface of the Exchange Server and allows you to deploy and customize Exchange to fit your business goals and needs.  The Exchange Server 2010 server roles are as follows:

  • Mailbox Server: This is the host server for all mailbox and public folder databases. Address lists and offline address books are also generated and maintained on the Mailbox server. The server indexes all the databases and provides the ability to search across multiple mailboxes and Public folders. The Mailbox server also enforces messaging records management and retention policies for the organization.
  • Client Access Server: The CAS is basically the communication gateway between the messaging client and the mailbox. The server hosts the client protocols for mail access including POP3, IMAP4, HTTPS, Outlook Anywhere, the Availability service, and the Auto-discover service.
  • Unified Messaging Server: Unified Messaging basically refers to the marriage between e-mail and the telephone system. This allows you to access your voice mail through your email client, and allows you to access your e-mail through your telephone (system can read your email to you). Users can also receive faxes through this integration.
  • Hub Transport Server: The Hub Transport server is the router for the Exchange organization. This handles all mail flow inside the organization, applies transport rules, applies journaling policies, and delivers messages to the recipient.
  • Edge Transport Server: This server is your protective layer between the internal messaging environment and the outside world. Anti-spam and Antivirus scanning take place on the Edge Transport server. As such, this server is typically placed on a perimeter network with a firewall on either side of it, meaning a firewall between the Internet and the perimeter and a firewall between the perimeter and the company network.
Share

Using Windows PowerShell as an IT Pro – Part 15

Thursday, April 8th, 2010

In my last post I reviewed Arithmetic Operators. Now I will explore Assignment Operators.

Assignment operators assign one or more values to a variable and perform numeric operations on the values before the assignment. Windows PowerShell supports the following assignment operators.

Operator Description
= Sets the value of a variable to the specified value.
+= Increases the value of a variable by the specified value, or appends the specified value to the existing value.
-= Decreases the value of a variable by the specified value.
*= Multiplies the value of a variable by the specified value, or appends the specified value to the existing value.
/= Divides the value of a variable by the specified value.
%= Divides the value of a variable by the specified value and then assigns the remainder (modulus) to the variable.
++ Increases the value of a variable, assignable property, or array element by 1.
Decreases the value of a variable, assignable property, or array element by 1.

The assignment operator (=) assigns values to variables. If the variable already has a value, the assignment operator (=) replaces the value without warning. Since the assignment operator has been mentioned multiple times in this training, no additional details are included here.

The assignment by addition, subtraction, multiplication, and division operators all work more or less the same way. For numeric types it takes the first part of the operator (+, -, *, /) and performs the appropriate calculation and then it assigns the result. For strings, it appends the specified value to the existing value. The assignment by subtraction and division operators do not work with strings. Let’s take a closer look at several of these operators.

The assignment by addition operator (+=) either increments the value of a variable or appends the specified value to the existing value. The action depends on whether the variable has a numeric or string type and whether the variable contains a single value (a scalar) or multiple values (a collection). First, it adds, and then it assigns.

$a = 5

$a += 2

$a

Operator06

When the value of the variable is a string, the value on the right side of the operator is appended to the string.

$a = "String"

$a += ” Appended”

$a

Operator07

The assignment by subtraction operator (-=) decrements the value of a variable by the value that is specified on the right side of the operator. This operator cannot be used with string variables and it cannot be used to remove an element from a collection. First, it subtracts, and then it assigns.

$a = 5

$a -= 2

$a

Operator08

The increment operator (++) increases the value of a variable by 1. When you use the increment operator in a simple statement, no value is returned.

$a = 6

++$a

$a

Operator09

The decrement operator (–) decreases the value of a variable by 1. As with the increment operator, no value is returned when you use the operator in a simple statement. Use parentheses to return a value.

$a = 6

(–$a)

Operator10

In my next post we will examine Comparison Operators.

Share

Exchange 2010 Deployment Assistant

Thursday, April 1st, 2010

As I’ve been working through some of the new Exchange 2010 material recently, I came across the Exchange 2010 Deployment Assistant. This tool is also called ExDeploy, which if you remember working with Exchange 2003 is the same name as the Deployment Tool from that version. So this is not exactly a new idea, but let’s take a look at what they put together for Exchange 2010.

The Exchange 2010 Deployment Assistant is a web based tool that basically gathers information about your environment and uses that information to create a customized checklist detailing the procedures that will help to simplify your Exchange 2010 deployment.

To access the Exchange 2010 Deployment Assistant, go to the following web site:
http://technet.microsoft.com/en-us/exdeploy2010/default.asp

On the home page, you will choose one of four options:

  • Upgrade from Exchange 2003
  • Upgrade from Exchange 2007
  • Upgrade from Exchange 2003 & 2007
  • New installation of Exchange 2010

Just to see how detailed the checklist is, let’s explore the Upgrade from Exchange 2003 & 2007 option. On the first page, we are asked three questions:

  1. Are you running a disjointed namespace?
  2. Are you planning to deploy an Exchange 2010 Edge Transport server role?
  3. Are you planning to deploy an Exchange 2010 Unified Messaging server role?

Now the Assistant doesn’t expect you to be an expert at all things Exchange (though a little knowledge goes a long way) so each question can be expanded to show a full explanation of why the topic is important during the Exchange deployment. So for these questions, I’m answering No, Yes, No.

Surprisingly, the Deployment Assistant is able to create a checklist based on just the answers to these three questions. The checklist include the following steps along with detained explanations on what to do along the way:

  • Confirm prequisties steps are done (stuff like making sure all the installation minimum requirments are satisfied on the existing Exchange Servers and in Active Directory).
  • Install the Client Access server role (insert the disk, run through the installation wizard).
  • Add digital certificates on the Client Access server (to secure external access to Exchange, including an exportable private key in X.509 format).
  • Enable Outlook Anywhare (allowing remote users to access their mail without them needing to VPN into the network).
  • Configure OAB and Web Services virtual directories (allowing Outlook Anywhere clients to discover and automatically connect to Exchange 2010).
  • Configure settings on virtual directories (used for Autodiscover, ActiveSync, OWA, Exchange Control Panel, PowerShell, Exchange Web Services, and public folders).
  • Install the Hub Transport server role (responsible for mail flow).
  • Configure a legacy host name (to allow coexistance with Exchange 2003 and 2007).
  • Install the Mailbox server role (host for mailbox and public folder databases).
  • Change the OAB generation server (for creating and updating the OAB).
  • Install the Edge Transport server role (anti-spam and antivirus filtering, and applies messaging and security policies).
  • Subscribe the Edge Transport server (enables internet mail flow).
  • Move mailboxes from Exchange 2003 or Exchange 2007 to Exchange 2010 (self explanatory, but be aware that users cannot send or receive email while the mailbox is being moved so this should only be performed when would otherwise be sleeping).
  • Post-installation tasks (just a list of items to check on each server such as making sure that the servers have been activated with a valid product key).

And that is the complete upgrade path. Seems pretty easy. What I like about this checklists is that it can be used directly because it only lists the step needed for your specific environment. When working through many of the Deployment whitepapers, you need to determine whether many of the steps are relevant to your situation. Using the Exchange Server Deployment Assisstant reduces or removes this problem.

Share