SS Technology Forum

SS Technology Forum

Computer Migration - Things to Consider

Here are a few points which you can consider while doing computer migration. These points are applicable to all migrations irrespective of the migration tool (ADMT, NetIQ, Quest etc)

Active Directory User Migration

Here is a graphical representation of the high level steps involved in an Active Directory migration using ADMT

User Migration and Merging Using Quest Migration Manager

Pre-creating user account in the target domain is a common scenario these days due to single-sign-on solution, HR management procedure etc

Microsoft Right Management Service (RMS)

Rights Management Service (RMS) is an add-on to many RMS aware applications. In this article my main focus is to explain how we can utilize RMS technology with Exchange 2003 and how we can take advantage of RMS technology to increase the email security

Microsoft ISA Server

I am sure we have all either encountered or heard of this "problem" one time or another if the ISA Server is part of the Active Directory Domain. Is it a problem?

Thursday, August 7, 2014

PowerShell TTUC #16 – Adding Comment using # and <# #>

PowerShell TTUC (Tips, Trick, and Useful Commands) – Adding Comment using # and <# #>

In all versions of PowerShell you can use # to a text after it a comment. 


# This a PowerShell comment

In PoweShell V2 and above you can <# #> to make a block of lines comments


<# First link

Second Line – This is a PowerShell Script


Thursday, July 24, 2014

PowerShell TTUC #15 – File Name with Time Stamp

PoweShell TTUC (Tips, Tricks and Useful Commands) #16 - File Name with Time Stamp

File can be created with date / time suffix using the following syntax / commands:

New-item -type file -Name ("MyFile_$(Get-Date -f MM-dd-yyyy_hh-mm-ss).txt") –force

New-item cmdlet will create a new file.  Get-data cmdlet will append date and time in MM-dd-yyyy_hh-mm-ss format. 

Wednesday, July 23, 2014

PoweShell TTUC #14 – Move Files and Folders

PowerShell  TTUC (Tips, Tricks and Useful Command) #14 – Move Files and Folders

The entire content of the folder can be moved to different location or folder using the move-item cmdlet.

Syntax / command:

move-item “\\Server01\MyReports\*.*”  "\\Server02\Reports_Backup\" –Force

Tuesday, July 22, 2014

PowerShell TTUC #13 – Scheduled Jobs

PowerShell Tips, Tricks and Useful Commands (TTUC) #13 – Scheduled Jobs

PowerShell scripts can be run as a scheduled job using using Windows scheduler.  Create a batch file with the following syntax/commands:


Powershell.exe “c:\scripts\mytestscript.ps1”


Wednesday, April 9, 2014

PowerShell - Tips, Tricks and Useful Commands

Tip #4 –





Tip #3 – Comparison Operators

Published date - May12, 2013































.csharpcode, .csharpcode pre
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
background-color: #f4f4f4;
width: 100%;
margin: 0em;
.csharpcode .lnum { color: #606060; }



More info -


#2 Logical Operators
Published date - April 11, 2013



Logical AND


Logical OR


Logical XOR


Not equal to


Not equal to


More info -

#1 Special Characters – Published Date - April 9, 2013

PoweShell supports the following special characters:









Form feed


New line


Carriage return


Horizontal tab


Vertical tab


Stop parsing


More info -

Tuesday, March 18, 2014

Collect Computer Information From Active Directory– PowerShell Script

This PowerShell script can be used to collect computer information from Active Directory.   I am searching only Windows XP and Windows 7 machines.  You can update these values  by modifying $OS1 and $OS2 variables.

$OS1 =  "Windows 7*"
$OS2 = "Windows XP*"

This script is schedule to run everyday.  That is the reason I have include a backup file location and a file copy process.


$BKlocation = "E:\Scripts\Win7\Report_Backups"
$Verify = Test-path -PathType Container $BKlocation
If ($Verify -eq $false)
{$Verify = New-Item -ItemType Directory -Path $BKlocation }
move-item "E:\Scripts\Win7\win*.txt" $BKlocation –Force

I am currently collecting only the following information.  You can add more details based on your requirement.

$tName = $
$tOS = $ItemProp.operatingsystem
$tSP = $ItemProp.operatingsystemservicepack
$tDes = $ItemProp.description
$tLoc = $ItemProp.distinguishedname
$tBuild = $ItemProp.operatingsystemversion




In my case, I am using an input file which contains the Distinguished Name of the OU.  You don't have to use an input file, if you are searching an entire Domain.  


Thursday, March 13, 2014

Verify Service Status Remotely Using Local Account – PowerShell Script

I have modified one of my previously published script - Stop, Start, Disable Service Remotely–PowerShell Script ( to use Local account (instead of a domain account) to verify the status of the service.



Input file contains computer names in the following format:


Tuesday, March 11, 2014

Blogger and Annoying Adobe Upgrade / Flash Malware

I was getting some really annoying Adobe Flash pop-up (malware?) on my blog.  I reviewed the code many times but I could find any suspicious entries.  However, my blog was showing the following advertisement at the bottom of the page.


I didn't have  Adsense configured in the blog. Based on my troubleshooting,  I noticed that this Ad is coming from a gadget called “Sociable” and somehow this gadget was “calling” the Adobe flash and other malware programs. 



The removal of the Sociable gadget fixed the (1) unauthorized Ad (2) Adobe and other malware issues in my blog!

Monday, March 10, 2014

Converting PowerShell (PS1) to EXE / Standalone Application

As we know, there many applications available to convert a PowerShell file to a standalone executable file.  Based on my experience, PowerShell GUI Script Editor has an easy and working (yes!) option available with the latest version of the product.

You can select Compile option from Tools menu as shown in the following screenshot.  It will generate an EXE and a configuration file.


You also able to select the .NET framework. 


Another useful add-on is Compile Script into Service option.



You can download the free PowerShell GUI Editor from this location -

Tuesday, February 25, 2014

User and Mailbox Migration – Part I (Introduction)

I am creating a few blogs about user and mailbox migration.  The plan is to explain different migration scenarios which exists in real world.  So far, I have 4 scenarios (listed below).  I may include a few more later. 

We can achieve all these migrations by using a free tool or a third party migration tool.  Since, a third party migration tools can provide more options and flexibility, I am planning to use Quest Migration Manager (QMM) for AD and Exchange for these migration scenarios. 

If you are not familiar with migration process, you can read my previous blogs from the following location:

ADMT and Migration Details


QMM and Migration Details


Scenario #1 One-To-One

This is a straight forward migration.  You will be migrating resources from a source forest to a target forest  (one-to-one).


Scenario #2 One-To-Many

In this scenario, you will be migrating user account to an Account Forest and Mailboxes to a Resource Forest (one-to-many).  There mailboxes will be linked mailbox.


Scenario #3 Many-To-One

In this scenario, you will be going from a resource forest model to a single forest model (many-to-one).  AD and Exchange will be in the target forest.


Scenario #4 Many-To-Many

Here you will be moving users from source account forest to a target account forest and mailboxes from source resource forest to a target resource forest (many-to-many). 



The details and step-by-step instructions will be included future part of this blog. 

Basic Mail Routing Configuration to QMM for Exchange

Here are some of the basics Exchange configuration you need to complete before you can start migrating mailboxes using QMM.  My assumption is that you are going from Exchange2000/2003 to Exchange 2007/2010.

Source - Exchange 2003

  1. Create a RUS policy to allow the Exchange to be authoritative for the QMM EX SMTP Namespace (you can use any name space like source.qmm, source1.qmm etc).
    1. Create a new Recipient Update Policy.
    2. Name - Source.qmm or Source1.qmm
    3. Filter - Leave this blank. Anything configured here will cause the RUS policy to stamp addresses on the objects. QMM will stamp this value during the migration.
    4. Add the SMTP Address of "Source.qmm" or Source1.qmm and check the box "This Org is authoritative for this namespace"
    5. Click OK, to save the Policy.
  2. Create a new SMTP Connector as follows
    1. Name - Target.qmm or Target1.qmm (target name space for QMM internal mail routing)
    2. Assign the Exchange SMTP server that will service this connector as "SOURCE-EX01" (Source EX Server)
    3. Set the connector to forward all e-mail to a smart host (or use your current mail routing configuration)
    4. Set the Address space to "Target.qmm" or Target1.qmm with a Cost of 1
      Note 1: The cost of this connector must be lower than the internet connector. If the cost of the internet connection (*) is set to the same value as this connector, both the internet connector and the Target.qmm connector will service the Target.qmm SMTP namespace.
    5. Click ok to save the connector
      Note 2: The Routing Engine will have to be stopped and started for these changes to take effect. If not, they will take effect on the next refresh cycle (15 min default)
  3. Reconfigure the SMTP Virtual server to "Resolve to GAL: for all incoming mail and to allow the Target bridgehead to submit SMTP mail (if restricted)
    1. From the protocols node of Exchange server ->properties on the Default SMTP Virtual server, Click the Resolve to GAL check box.
    2. Verify that the SMTP Virtual server is not restricted to what IP addresses can submit mail, if it is Add the IP address on the Target bridgehead.
    3. Click ok to Save the connector.
    4. Note: The SMTP Virtual server will have to be stopped and started for this change to take effect.

Target - Exchange 2010

1. Create an Accepted Domain for the Target QMM Exchange SMTP Namespace (you can use any name space like Target.QMM, Target1.QMM etc) .

2. Create a Send Connector for the Source QMM Exchange SMTP Namespaces (Source.QMM or Source1.QMM)

3. Configure it to forward all messages to the Source Exchange bridgehead's IP Address or FQDN.

a. Set the namespace to Source.QMM or Source1.QMM with a cost of 1.

4. Create a Receive connector on Target Exchange.

    1. Click on Create new Receive connector.
    2. Define as Custom.
    3. The IP/Port it listens on will be unchanged. The same IP address that services port 25 must be used.
    4. The IP that will submit messages should be defined.
    5. Commit the changes.
    6. Edit the connector to the following security settings:
    7. Externally Secured ONLY
    8. Exchange Servers ONLY



  1. Part1 - User and Mailbox Migration (Introduction)
  2. Part2 - Scenario #1 (One-To-One)
  3. Part3 - Scenario #2 (One-To-Many)
  4. Part4 - Scenario #3 (Many-To-One)
  5. Part5 – Scenario #4 (Many-To-Many)

Popular Posts


Twitter Delicious Facebook Digg Stumbleupon Favorites More