Transition from Exchange 2007 to Exchange 2010 in Brief

 

Prerequisites :

All Exchange Servers Exchange 2007 Sp2
AD forest and Domain in Windows 2003 Functional Level
At least one DC should be windows server 2003 Sp2 or higher

Preparing for Exchange Installation

1. Install Windows 2008 x64 Bit Servers as per the standard configuration

2. Prepare Schema, Forest Prep and Domain prep from command lines

3. Install Multiple Client Access Server(CAS) Role servers depending on your requirement. You may need more CAS when compared with Exchange 2007 because in Exchange 2010 all outlook clients connects to CAL Roles severs instead of Mailbox Roles servers

4. Testing CAS servers under LB and configure to access the mailbox of Exchange 2007 and Exchange 2003 mailbox if you have

5. Install Hub Transport Server Role from Exchange 2010 installable on new servers. No of servers depending on your requirement and best parties from Microsoft

6. Install Mailbox Servers roles

7. Check the mailbox between Exchange 2007 and Exchange 2010 Servers and Test the same

8. Once testing is completed on the mail flow, create new public folder database in one the new Exchange 2010 mailbox role servers and configure replica to replicate the data to new public folder DB

9. Move couple of mailboxes and test calendar, outlook , autodiscovery , outlook anywhere etc

10. Once all the testing is completed configure inbound and outbound mail through Exchange 2010 Servers

11. Change Internet Facing Exchange 2007 CAS servers with Exchange 2010 CAS servers

12. Move all other mailbox from Exchange 2007 mailbox servers to Exchange 2010 servers

13. Once all the mailboxes are moved then transfer public folder replica to Exchange 2010 public folder

14. Rehome Offline  Address book to Exchange 2010 Server

15. Uninstall all the Exchange 2007 one by one

Important Note:

All Exchange 2007 Server roles needs to remain until all uses are migrated to Exchange 2010. Exchange 2010 Hub, CAS and Mailbox is not backward compatible with Exchange 2007

Email Encrypting through outlook using Email Certificates

All emails sent with in the Exchange 2007 or Exchange 2010 are Encrypted. If we want to send email outside Exchange organization then it is not encrypted.  This emails can be hacked by any one and can modify and content. To avoid this we need to make sure that we encrypt the email which is sending outside organization. There are various ways to encrypt emails.  Various third party tools are available for this. A simple solution to encrypt email is to use Email Certificates.

Below is the Brief Description on how to we can send encrypted and Signed email between User A and User B

1.  Register,  Download and Configure SSL Email Certificate on User A outlook

2.  Register, Download and Configure SSL Email Certificate on User B Outlook

3.  Send Signed Email from User A to User B using outlook and Vice versa

4. On User A Outlook open User B email and right click on the User B address and add to contact and do the same on User B outlook for User A address

5.  Now we are ready to send and receive encrypted emails between User A and User B

Various vendor provide you email certificates like  Comodo, VeriSign, Starcom etc. Below is one of the link were you can get free email certificate from comodo. Register with your email address and install certificate into your machine

http://www.instantssl.com/ssl-certificate-products/free-email-certificate.html

Once you have certificate installed on your machine configure your outlook with the certificate. Below link helps you to configure the same

http://www.instantssl.com/ssl-certificate-support/email-certificate-outlook.html

Once you are done, you should good to send and receive encrypted emails. Hope this article helps you.. 🙂

Powershell to find version of Transport.exe on all Exchange Transport servers

Powershell to find version of Transport.exe on all Exchange Hub Transport server

$TsServer = Get-TransportServer
foreach($server in $TsServer){
$name = $server.name
$storever = [System.Diagnostics.FileVersionInfo]::GetVersionInfo(“\\$name\c$\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe”).Fileversion
$res = $server.name  + ” = ” + $storever
$res
}

Powershell to Find Store.exe Version on All Exchange Mailbox Servers

Powershell to Find Store.exe Version on All Exchange Mailbox Servers. We need to make sure that Store.exe is constant on all the servers.  Below script helps you to get same

$MBXServer = Get-mailboxServer
foreach($server in $MBXServer){
$name = $server.name
$storever = [System.Diagnostics.FileVersionInfo]::GetVersionInfo(“\\$name\c$\program files\microsoft\exchange server\bin\store.exe”).Fileversion
$res = $server.name  + ” = ” + $storever
$res
}

VBScript to Add users Security Group to local computer if Computer object is under specific OU

VBScript to Add users Security Group to local computer if Computer object is under specific OU. For Security reason we always need to make sure that only specific security groups are administrators of specific computers. This will always be the business requirement. With below script you can obtain this. Include this script in in the GPO and Add in to user logon script.


DIM objNetwork
DIM computerName
DIM ou
set objNetwork = createobject(“Wscript.Network”)
computerName = objNetwork.ComputerName
ou = getOUByComputerName(computerName)

on error resume next
Select Case ou

Case “OU=Computers,DC=domain,DC=com”
set group = GetObject(“WinNT://”& computerName &”/Administrators”)
group.Add “WinNT://domain/Group”
err.clear

Case “OU=Computers1,DC=domain,DC=com”
set group = GetObject(“WinNT://”& computerName &”/Administrators”)
group.Add “WinNT://domain/Group1”
err.clear

End Select

function getOUByComputerName(byval computerName)
DIM namingContext, ldapFilter, ou
DIM cn, cmd, rs
DIM objRootDSE
set objRootDSE = getobject(“LDAP://RootDSE”)
namingContext = objRootDSE.Get(“defaultNamingContext”)
set objRootDSE = nothing
ldapFilter = “<LDAP://” & namingContext & _
“>;(&(objectCategory=Computer)(name=” & computerName & “))” & _
“;distinguishedName;subtree”
Set cn = createobject(“ADODB.Connection”)
set cmd = createobject(“ADODB.Command”)
cn.open “Provider=ADsDSOObject;”
cmd.activeconnection = cn
cmd.commandtext = ldapFilter
set rs = cmd.execute
if rs.eof <> true and rs.bof <> true then
ou = rs(0)
ou = mid(ou,instr(ou,”,”)+1,len(ou)-instr(ou,”,”))
getOUByComputerName = ou

end if
rs.close
cn.close

end function

You can always find the copy from the below link

http://powershell.com/cs/cfs-filesystemfile.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.30.62/AddAdminfinal.txt

Exchange Database – Dirty Shutdown

As Exchange Administrator it would be bad day if you have exchagne database in Dirty Shutdown State and you dont have required log files to perform soft recovery. Below link has a steps on how to perform soft recovery if you have al the require log file.

/2009/07/13/disaster-recovery-of-exchange-2007-mailbox-server/

If you dont have the required log files then you have to follow below steps to recover the database

1. Run ESEUTIL /P database_filename.edb (from the BIN folder and repair the edb files)
2. Delete the log and chk files.
3. Run eseutil /d database_filename.edb (Defrag the Database)
4. Run isinteg (isinteg -s servername -fix -test alltests) from the bin folder.
5. Mount the stores

Eseutil and Isinteg would be really long time , depending on the size of the database. Microsoft always recommends to keep the database size less then 100 GB. If you are using CCR environment then it can grow more then 100 GB as you will be multipe copies of the log files for recovery purpose