Select your cookie preferences

We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics, so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can choose “Customize” or “Decline” to decline performance cookies.

If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To accept or decline all non-essential cookies, choose “Accept” or “Decline.” To make more detailed choices, choose “Customize.”

Accelerate the discovery and migration of Microsoft workloads to AWS - AWS Prescriptive Guidance

Accelerate the discovery and migration of Microsoft workloads to AWS

Created by Ali Alzand

Summary

This pattern shows you how to use the Migration Validator Toolkit PowerShell module to discover and migrate your Microsoft workloads to AWS. The module works by performing multiple checks and validations for common tasks associated with any Microsoft workload. For example, the module checks for instances that might have multiple disks attached to it or instances that use many IP addresses. For a full list of checks that the module can perform, see the Checks section on the module's GitHub page.

The Migration Validator Toolkit PowerShell module can help your organization reduce the time and effort involved in discovering what applications and services are running on your Microsoft workloads. The module can also help you identify the configurations of your workloads so that you can find out if your configurations are supported on AWS. The module also provides recommendations for next steps and mitigation actions, so that you can avoid any misconfigurations before, during, or after your migration.

Prerequisites and limitations

Prerequisites

  • Local administrator account

  • PowerShell 4.0

Limitations

  • Works only on Microsoft Windows Server 2012 R2 or later

Tools

Tools

  • PowerShell 4.0

Code repository

The Migration Validator Toolkit PowerShell module for this pattern is available in the GitHub migration-validator-toolkit-for-microsoft-workloads repository.

Epics

TaskDescriptionSkills required

Download, extract, import, and invoke the module.

Choose one of the following methods to download and deploy the module:

  • Run the PowerShell script

  • Download and extract the .zip file

  • Clone the GitHub repository

Run the PowerShell script

In PowerShell, run the following example code:

#MigrationValidatorToolkit $uri = 'https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads/archive/refs/heads/main.zip' $destination = (Get-Location).Path if ((Test-Path -Path "$destination\MigrationValidatorToolkit.zip" -PathType Leaf) -or (Test-Path -Path "$destination\MigrationValidatorToolkit")) { write-host "File $destination\MigrationValidatorToolkit.zip or folder $destination\MigrationValidatorToolkit found, exiting" }else { Write-host "Enable TLS 1.2 for this PowerShell session only." [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $webClient = New-Object System.Net.WebClient Write-host "Downloading MigrationValidatorToolkit.zip" $webClient.DownloadFile($uri, "$destination\MigrationValidatorToolkit.zip") Write-host "MigrationValidatorToolkit.zip download successfully" Add-Type -Assembly "system.io.compression.filesystem" [System.IO.Compression.ZipFile]::ExtractToDirectory("$destination\MigrationValidatorToolkit.zip","$destination\MigrationValidatorToolkit") Write-host "Extracting MigrationValidatorToolkit.zip complete successfully" Import-Module "$destination\MigrationValidatorToolkit\migration-validator-toolkit-for-microsoft-workloads-main\MigrationValidatorToolkit.psm1"; Invoke-MigrationValidatorToolkit }

The code downloads the module from a .zip file. Then, the code extracts, imports, and invokes the module.

Download and extract the .zip file

  1. Download the .zip file (download).

  2. Extract the .zip file.

  3. Follow the steps in the Invoke the module manually story of this guide.

Clone the GitHub repository

  1. To clone the GitHub migration-validator-toolkit-for-microsoft-workloads repository, run the following Git command in a terminal window:

    git clone https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads.git
  2. Follow the steps in the Invoke the module manually story of this guide.

System Administrator

Invoke the module manually.

  1. Go to the directory where the downloaded module is stored.

  2. To generate the output of your choice, run one of the following commands as an administrator in PowerShell:

Format-Table format:

Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit

Format-List format:

Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -List

Out-GridView format:

Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -GridView

ConvertTo-Csv format:

Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -csv
System Administrator

Run the Migration Validator Toolkit PowerShell module on a single target

TaskDescriptionSkills required

Download, extract, import, and invoke the module.

Choose one of the following methods to download and deploy the module:

  • Run the PowerShell script

  • Download and extract the .zip file

  • Clone the GitHub repository

Run the PowerShell script

In PowerShell, run the following example code:

#MigrationValidatorToolkit $uri = 'https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads/archive/refs/heads/main.zip' $destination = (Get-Location).Path if ((Test-Path -Path "$destination\MigrationValidatorToolkit.zip" -PathType Leaf) -or (Test-Path -Path "$destination\MigrationValidatorToolkit")) { write-host "File $destination\MigrationValidatorToolkit.zip or folder $destination\MigrationValidatorToolkit found, exiting" }else { Write-host "Enable TLS 1.2 for this PowerShell session only." [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $webClient = New-Object System.Net.WebClient Write-host "Downloading MigrationValidatorToolkit.zip" $webClient.DownloadFile($uri, "$destination\MigrationValidatorToolkit.zip") Write-host "MigrationValidatorToolkit.zip download successfully" Add-Type -Assembly "system.io.compression.filesystem" [System.IO.Compression.ZipFile]::ExtractToDirectory("$destination\MigrationValidatorToolkit.zip","$destination\MigrationValidatorToolkit") Write-host "Extracting MigrationValidatorToolkit.zip complete successfully" Import-Module "$destination\MigrationValidatorToolkit\migration-validator-toolkit-for-microsoft-workloads-main\MigrationValidatorToolkit.psm1"; Invoke-MigrationValidatorToolkit }

The code downloads the module from a .zip file. Then, the code extracts, imports, and invokes the module.

Download and extract the .zip file

  1. Download the .zip file (download).

  2. Extract the .zip file.

  3. Follow the steps in the Invoke the module manually story of this guide.

Clone the GitHub repository

  1. To clone the GitHub migration-validator-toolkit-for-microsoft-workloads repository, run the following Git command in a terminal window:

    git clone https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads.git
  2. Follow the steps in the Invoke the module manually story of this guide.

System Administrator

Invoke the module manually.

  1. Go to the directory where the downloaded module is stored.

  2. To generate the output of your choice, run one of the following commands as an administrator in PowerShell:

Format-Table format:

Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit

Format-List format:

Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -List

Out-GridView format:

Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -GridView

ConvertTo-Csv format:

Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -csv
System Administrator
TaskDescriptionSkills required

Download the .zip file or clone the GitHub repository.

Choose one of the following options:

git clone https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads.git
System Administrator

Update the server.csv list.

If you downloaded the .zip file, follow these steps:

  1. Extract the .zip file.

  2. Go to the MigrationValidatorToolkit\Inputs\ directory.

  3. Update serverlist.csv with the host name of your target computers.

System Administrator

Invoke the module.

You can use any computer within the domain that uses a domain user that has administrator access to target computers.

  1. Download the source code as a .zip file and extract the file.

  2. As an administrator in PowerShell, run the following command:

Import-Module .\MigrationValidatorToolkit.psm1;Invoke-DomainComputers

The output .csv file is saved in MigrationValidatorToolkit\Outputs\folder with the prefix name DomainComputers_MigrationAutomations_YYYY-MM-DDTHH-MM-SS.

System Administrator

Run the Migration Validator Toolkit PowerShell module on multiple targets

TaskDescriptionSkills required

Download the .zip file or clone the GitHub repository.

Choose one of the following options:

git clone https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads.git
System Administrator

Update the server.csv list.

If you downloaded the .zip file, follow these steps:

  1. Extract the .zip file.

  2. Go to the MigrationValidatorToolkit\Inputs\ directory.

  3. Update serverlist.csv with the host name of your target computers.

System Administrator

Invoke the module.

You can use any computer within the domain that uses a domain user that has administrator access to target computers.

  1. Download the source code as a .zip file and extract the file.

  2. As an administrator in PowerShell, run the following command:

Import-Module .\MigrationValidatorToolkit.psm1;Invoke-DomainComputers

The output .csv file is saved in MigrationValidatorToolkit\Outputs\folder with the prefix name DomainComputers_MigrationAutomations_YYYY-MM-DDTHH-MM-SS.

System Administrator

Troubleshooting

IssueSolution

MigrationValidatorToolkit writes information about executions, commands, and errors to log files on the running host.

You can view log files manually in the following location:

  1. Go to the MigrationValidatorToolkit\logs\ directory.

  2. Locate the log file. The format of the log file name is: ComputerName_MigrationValidatorToolkit_YYYY-MM-SSTHH-MM-SS.log

Related resources

Additional information

Frequently asked questions

Where can I run the Migration Validator Toolkit PowerShell module?

You can run the module on Microsoft Windows Server 2012 R2 or later.

When do I run this module?

We recommend that you run the module during the assess phase of the migration journey.

Does the module modify my existing servers?

No. All actions in this module are read-only.

How long does it take to run the module?

It typically takes 1–5 minutes to run the module, but it depends on the resource allocation of your server.

What permissions does the module need to run?

You must run the module from a local administrator account.

Can I run the module on physical servers?

Yes, as long as the operating system is Microsoft Windows Server 2012 R2 or later.

How do I run the module at scale for multiple servers?

To run the module on multiple domain-joined computers at scale, follow the steps in the Run the Migration Validator Toolkit PowerShell module on multiple targets epic of this guide. For non domain-joined computers, use a remote invocation or run the module locally by following the steps in the Run the Migration Validator Toolkit PowerShell module on a single target epic of this guide.

PrivacySite termsCookie preferences
© 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved.