Note to myself: How to perform a CTRL+ALT+DEL inside an Azure Virtual Machine?

Note to myself: How to perform a CTRL+ALT+DEL inside an Azure Virtual Machine?

This post is just for sake of my mental sanity because I’m always forgetting the keystroke combination to perform a CTRL-ALT-DEL thru Remote Desktop on an Azure Virtual Machine because if you press a CTRL-ALT-DEL key combination it will perform that command in your local machine – maybe now next time I will remember it, otherwise I know were to look.

To bring up the Windows Security dialog box for the Remote Desktop Session Host (RD Session Host) (provides the same functionality as pressing CTRL+ALT+DEL on the local computer) you need to use the following keystroke combination: CTRL + ALT + END.

CTRL + ALT + DEL becomes CTRL + ALT + END

While researching, once again, I found out another very useful shortcut:

  • ALT+PRINT SCREEN will place a snapshot of the active window, within the client, on the clipboard

To know more about other possible shortcuts please see Remote Desktop Services Shortcut Keys

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community. View all posts by Sandro Pereira

Backup BizTalk Server job failed. Executed as user: NT SERVICESQLSERVERAGENT. Could not connect to server ” because ” is not defined as a remote login at the server.

Backup BizTalk Server job failed. Executed as user: NT SERVICESQLSERVERAGENT. Could not connect to server ” because ” is not defined as a remote login at the server.

In my last post, I described how can you fix the issue regarding:

Executed as user: BIZDEMOsaspereira. Could not find server ‘BIZDEMO’ in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers. [SQLSTATE 42000] (Error 7202). The step failed.).

See more about this error here: https://blog.sandro-pereira.com/2018/05/08/backup-biztalk-server-job-failed-could-not-find-server-in-sys-servers/

And I told that this was not the only issue that you will find. The truth is that if you try to execute the Backup BizTalk Server job after you fix this last problem, the job will fail again this time with the following error:

Executed as user: NT SERVICESQLSERVERAGENT. Could not connect to server ‘BIZDEMO’ because ” is not defined as a remote login at the server. Verify that you have specified the correct login name. . [SQLSTATE 42000] (Error 18483). The step failed.

Backup BizTalk Server job failed - Could not connect to server is not defined as a remote login at the server

Cause

This error can be related to several possible problems and a common solution you will find in SQL Server forums and post is that you should Drop and re-create the linked server will resolved this problem.

However, and forgive me in advance for my SQL ignorance, I don’t have any linked Server configured, my BizTalk Server Virtual Machine is a simple standalone machine with BizTalk and SQL installed… so, it couldn’t be that problem!

Backup BizTalk Server job failed - Could not connect to server is not defined as a remote login at the server: Linked Server

So, after several tests, I started to think as a truly genuine old-school technical guy:

  • It doesn’t work? did you try to restart it?

Or as a true BizTalk developer guy:

  • Did you restart the host after your solution deployment?

And I thought that it might be necessary to restart the SQL services so that all the settings of the previous command execution have the correct effect – execution of the commands: sp_dropserver and sp_addserver necessary to fix the issue reported in the previous post.

And it was!

Solution

To fix this issue, we need to restart the SQL services

After you restart the SQL Server Services you will be able to run the Backup BizTalk Server job successfully.

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community. View all posts by Sandro Pereira

Backup BizTalk Server job failed. Executed as user ”. Could not find server in sys.servers. Verify that the correct server name was specified

Backup BizTalk Server job failed. Executed as user ”. Could not find server in sys.servers. Verify that the correct server name was specified

After you install and configure a BizTalk Server Azure Virtual Machine, the first time you try to run the main BizTalk Server job: Backup BizTalk Server (BizTalkMgmtDb) – of course after you properly configure it – it will fail every time with the following error:

Executed as user: BIZDEMOsaspereira. Could not find server ‘BIZDEMO’ in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers. [SQLSTATE 42000] (Error 7202). The step failed.).

BizTalk Backup Job Could not find server sys.servers

Note: will not be the only one that you will find but let’s will go step by step and we will address other errors in different blog posts

 Cause

Well, I guess (I’m sure) that this error happens because we are using a default Microsoft BizTalk Server image with all the components already installed: Visual Studio, BizTalk Server and especially SQL Server.

This problem happens because of the SQL Server name present in sys.servers table – maybe that was specified during setup of this image – is defined as “localhost” and not the actual VM name that you created on the Azure Portal and for the job work properly:

  • The SQL server name specified during setup of the Azure Virtual Machine must match the Name in sys.servers of the SQL server

To check the Name present in sys.servers table please run the following SQL Script:

SELECT name FROM sys.servers
GO

Backup BizTalk Server job Could not find server in sys.servers: check the name

Solution

To fix this issue, we need to remove the old server name and add the new server name in SQL. You can do that by:

  • Login on to SQL Server and open SSMS.
  • Connect to the instance and run below query, which will remove the old server name.
sp_dropserver 'localhost'
GO
  • And then run below query to add the new server name, that in my case was “BIZDEMO”:
sp_addserver 'BIZDEMO', local
GO

After you execute these scripts this particular problem will be solved.

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community. View all posts by Sandro Pereira

WCF-SQL Adapter: Connecting to the LOB system has failed. A network-related or instance-specific error occurred while establishing a connection to SQL Server

WCF-SQL Adapter: Connecting to the LOB system has failed. A network-related or instance-specific error occurred while establishing a connection to SQL Server

I been delivering a lot of BizTalk Server Training Courses for Developers and for Administrator in the past years that I normally like to call them “Developing BizTalk Server version Course” or “BizTalk Server Operations, Administration, and Maintenance (OAM) course” – yes I know, I am very creative in terms of names – and one of the good things about using Azure Virtual Machines for that is that we can easily create several developer machines in a short period of time and manage them for not consuming resources. And normally on of the task that is present in both courses is to configure BizTalk Server environment, because I believe that all BizTalk Developers should know the basics of BizTalk Server in terms of installation, configuration and optimizations – tasks that are normally done by BizTalk Administrations – I can go further and say that, in my personal opinion, if you don’t know these basic concepts you are not truly a BizTalk Developer because many things can be done by configurations and not code.

One of these tasks is to install and configure BizTalk Server LOB adapters, in especially SQL Server adapter, since in a Developer standalone machine we will need to have SQL Server, so it is easy to test this LOB Adapter. However, if we create the Azure BizTalk Server 2016 Developer machine, configure BizTalk Server and then install and configure LOB adapters without doing anything more and you try to create a BizTalk Server solution using Visual Studio and generate SQL Server schemas:

  • In the Solution Explorer, right-click your project, click “Add”, and then click “Add Generated Items…”
  • In the “Add Generated Items – <Project Name> dialog box, select “Consume Add Service”, and then click “Add”.
  • Select the sqlBinding and properly configuring the URI

We will get the following error message:

Connecting to the LOB system has failed.

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 – The remote computer refused the network connection.).

Connecting to the LOB system has failed: WCF-SQL Adapter

when we try to connect to the SQL Server configured.

Cause

This error may occur for several reasons like BizTalk Server cannot communicate with SQL Server machine because some firewall restrictions or SQL Server does not accept Remote Connections and so on.

However, in our case, we are talking about a standalone BizTalk machine that is trying to access a database in the local SQL Server.

Our problem was that by default what Microsoft could possibly configure wrong in terms of SQL Server protocols on the BizTalk Server developer image on Azure… is actually set up wrongly!

Connecting to the LOB system has failed: SQL Server 2016 Configuration Manager protocols

And as I described in my BizTalk Server Installation and configuration tutorial (see here), one of the important steps is to configure SQL Server Network Protocols, in special ensuring that TCP/IP is enabled and Shared Memory is disabled. You can see how to accomplish this using SQL Server Configuration Manager tool here.

The actual problem that was causing the connecting to fail while trying to connect to the LOB system, in this particular case the SQL Server is because the TCP/IP protocol is disabled.

Solution

To properly configure the protocols for SQL Server, especially the TCP/IP protocol, you should:

  • Press the “Windows key” to switch to Metro UI and type “SQL Server 20016 Configuration Manager” and click on “SQL Server 2016 Configuration Manager” option on Apps menu.
  • In SQL Server Configuration Manager windows, from the left-hand pane expand “SQL Server Network Configuration” option and then click “Protocols for MSSQLSERVER”
  • Verify that both “TCP/IP” and “Named Pipes” are enabled;
  • If not, right-click in the protocol, and then click “Enable”
  • Repeat to enable the other protocol if necessary.
  • Verify that “Shared Memory” is Disable.
  • If not, right-click Shared Memory, and then click “Disable”
  • In the left-hand pane, click “SQL Server Services”, right-click “SQL Server (MSSQLSERVER)”, and then click “Restart”.

Connecting to the LOB system has failed: SQL Server 2016 restart

  • Close SQL Server Configuration Manager.
  • Click “OK” and then “Apply”

After correctly configure the SQL Server protocols, again, especially the TCP/IP, you will be able to successfully connect and generate the SQL Server Schemas that you need for your BizTalk Server Solution.

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community. View all posts by Sandro Pereira

How to reset the built-in administrator account password from an Azure BizTalk VM.

How to reset the built-in administrator account password from an Azure BizTalk VM.

Are you careless like me who constantly forgets the credentials (not critical)? If so this post about how you can reset the built-in administrator account password on an Azure BizTalk VM will help you not to waste a few hours in vain.

I think that the life of a consultant is difficult regarding system credentials, you have your personal credentials (AD account, company and personal emails, and so on) and for each client, you may also have different credential accounts… If this were not already complicated, each system may have different criteria that require you to have more complicated or simpler passwords. For these cases, the solution is more or less simple, we annoy the sysadmin and ask him to reset our password. However, for our Azure VM that we create in our Azure Subscription for demos or production, well that can be a more complicated scenario and I have tendency to create and delete several BizTalk Server Developer Edition machines, special for POC, Workshops or courses and sometimes (aka all the time) I forgot the built-in administrator password. So, how can we reset the built-in administrator account password from an Azure BizTalk Server VM?

Note: I am referring Azure BizTalk Server VM, mainly because my blog is about Enterprise Integration but this can apply to any type of Azure VM.

Most of the time the answer is very simple:

  • You access the Azure portal (https://portal.azure.com/) and select the Virtual Machine that you want to reset the password
  • Then click Support + Troubleshooting > Reset password. The password reset blade is displayed:

Reset the built-in administrator account password: Azure Portal BizTalk VM

  • You just need to enter the new password, then click Update. And you will see a message on the right upper corner saying the reset password task is processing.

Reset the built-in administrator account password: Azure Portal BizTalk VM task begin

  • The result of the task will be presented in the Notification panel and most of the times you will find a “Successfully reset password” message

Reset the built-in administrator account password: Azure Portal BizTalk VM task complete

But there is always “an exception to the rule”, and that was one of my cases. When I was trying to reset the password through the Azure Portal I was always getting an Unable to reset the password message, don’t know exactly why to be honest. I tried to reset the password by using PowerShell described in the documentation: How to reset the Remote Desktop service or its login password in a Windows VM

Set-AzureRmVMAccessExtension -ResourceGroupName "myResoureGroup" -VMName "myVM" -Name "myVMAccess" -Location WestUS -typeHandlerVersion "2.0" -ForceRerun

But still I was not able to perform this operation and I was getting this annoying error:

…Multiple VMExtensions per handler not supported for OS type ‘Windows’. VMExtension. VMExtension ‘…’ with handler ‘Microsoft.Compute.VMAccessAgent’ already added or specified in input.”

Solution

To solve this problem, I was forced to remove the existing VMExtention by:

  • First by getting the list of extensions on VM to find the name of the existing extension (presented in red on the below picture)
Get-AzureRmVM -ResourceGroupName [RES_GRP_NAME] -VMName [VM_NAME] -Status

Reset the built-in administrator account password: Azure Portal BizTalk VM PowerShell Get-AzureRmVM

  • And then by removing the VMAccess extension from the virtual machine
Remove-AzureRmVMAccessExtension -ResourceGroupName [RES_GRP_NAME] -VMName [VM_NAME] -Name [EXT_NAME]
  • You will get a validation question. “This cmdlet will remove the specified virtual machine extension. Do you want to continue?”, Type “y” and then ENTER to accept and continue.

Reset the built-in administrator account password: Azure Portal BizTalk VM PowerShell Remove-AzureRmVMAccessExtension

After that you can access to the Azure portal (https://portal.azure.com/), select the Virtual Machine that you want to reset the password, click Support + Troubleshooting > Reset password and update the built-in administrator account password without the previous problem.

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community. View all posts by Sandro Pereira

Updated BizTalk 2013 Development Azure VM Creation Scripts

I have made some updated to the PowerShell scripts I have for creating a new BizTalk Server 2013 Development Virtual Machine inside Microsoft Azure. 

Download the files here: BizTalk Development Azure VM Creation Scripts

Important points to note:

  • This will only work for an Azure subscription linked to an MSDN account.
  • You are charged money (against your MSDN allowance) when the VM is running and stopped.  It needs to be Stopped – Deallocated in order to stop the billing.  To do this, use the portal to shut down the VM or use StopVM PowerShell script to turn it off. 
  • Tested with the May 2014 release of Azure PowerShell Commands (older versions might not work)

The scripts do the following:

  1. Creates a Virtual Machine in Azure using the datacenter and size you specify.
  2. Auto configures your BizTalk development server to create a Receive, Send, Processing, and Tracking host.
  3. Downloads the remote desktop connection for you so all you need to do is click.
  4. Includes RemoveVM, StopVM, and StartVM scripts for easy admin.

To run the script only 2 values need to be updated.  In all four scripts (MakeVM, RemoveVM, StopVM, StartVM) update the following at the top of the file:

$baseVMName =  ‘any123’                                   # UPDATE 1 – this needs to be globally unique, like initials and 4 random numbers
$subscriptionName =  ‘MSDN Subscription’     # UPDATE 2 – this is your subscription name

Make sure you review the other variables and make any changes as needed. 

I’m currently hosting some supporting files on a public azure file store.  At some point I might take that down.  If so, you will need to upload the files to your own queue and update the MakeVM script.  I have included the 5 helper files in the Helper folder.

Full BizTalk Domain scripts are coming in a few days.

Enjoy and let me know your experience with the scripts!

First Look at a Windows Azure Bill for BizTalk Server 2013

With the release of BizTalk Server 2013 on Windows Azure Infrastructure as a Service (IaaS) we have a new way to license BizTalk Server.  We can now license BizTalk Standard and Enterprise on a pay per hour basis.  This opens up a wide range of opportunities for dealing with short lived and bursting scenarios.

What does I bill using these pay per hour features look like?  See below. 

I used 3 hours of both a Standard and Enterprise edition of BizTalk Server. 

Using the pay per hour model is currently only supported using the pre-built images.  So if you wanted to have pay per hour Virtual Machines already connected to a BizTalk Group, you could create a new Virtual Machine using the pay-per-hour image and then join it to your group.  Once joined, Delete the Virtual Machine.  If you need that Virtual Machine back again, just create the Virtual Machine using that Disk.  This way you are up and running in about 3 minutes and only changed for the storage space until you need the extra processing ability.

Is anyone using BizTalk in IaaS now in a pay-per-hour basis?

Windows Azure IaaS is Live and BizTalk Server 2013 Hourly Pricing Released

Today Microsoft released to General Availability the Infrastructure as a Service (IaaS) side of Windows Azure.  This includes Virtual Machines and Virtual Networking.  Read complete details of the release here.

This is a huge milestone for BizTalk’ers because with the GA release we now have available on a per-per-hour basis both BizTalk Server 2013 Standard and Enterprise Editions.  This opens up a whole new spectrum of scenarios using this per-per-use model. 

We now have 3 new pre-built images for BizTalk 2013 available in the Image Gallery.  They include a BizTalk Evaluation, BizTalk Standard, and BizTalk Enterprise editions.  As best I can tell, the BizTalk Evaluation is just charged at the base rate of the VM.  The other two editions are more expensive.  They are priced as shown in the table below but they include the license to BizTalk.

COMPUTE INSTANCE NAME

VIRTUAL CORES

RAM

STANDARD

ENTERPRISE

Small (A1)

1

1.75 GB

$0.75/hr
(~$558/month)

$2.99/hr
(~$2,225/month)

Medium (A2)

2

3.5 GB

$0.84/hr
(~$625/month)

$3.08/hr
(~$2,292/month)

Large (A3)

4

7 GB

$1.02/hr
(~$759/month)

$3.26/hr
(~$2,425/month)

Extra Large (A4)

8

14 GB

$2.04/hr
(~$1,518/month)

$6.52/hr
(~$4,851/month)

COMPUTE INSTANCE NAME

VIRTUAL CORES

RAM

STANDARD

ENTERPRISE

A6

4

28 GB

$1.68/hr
(~$1,250/month)

$3.92/hr
(~$2,916/month)

A7

8

56 GB

$3.36/hr
(~$2,500/month)

$7.84/hr
(~$5,833/month)

Pricing current as of 4-16-13 per the Azure Pricing Page.

I have already played around with the Enterprise Edition running as a Small VM.  I would say, don’t even bother with this size.  If you want to give it a run, go right to the Large.  The few cents I saved per hour was more than eaten up with latency and overall general slowness of the small VM instance.  Giving the few cents price difference between Small and Large, I’ve surprised Small and Medium are even an option.  I also do not know how this pricing relates to any free usage you might get in the 90 day trial or MSDN.

CRITICAL – please remember you are charged for a VM even when it is STOPPED.  So if you create a Large BizTalk Enterprise VM you are charged until you DELETE the VM.

Let me know if you have played around with these new VM’s and what you think of them!  More to come on BizTalk and IaaS in the upcoming months.

Vote for “The Story of Your Life – Mr. Virtual Machine” in the Windows Azure Makes Me FAST Contest

Vote for “The Story of Your Life – Mr. Virtual Machine” in the Windows Azure Makes Me FAST Contest

Over the past few months I have been blogging a lot about the new Windows Azure Virtual Machines.  That is because I can see the huge impact on projects for having this type of infrastructure available literally at your fingertips – for pennies an hour. 

Just yesterday I setup a full windows domain with 4 servers accessible worldwide in a matter of an hour or two.

I wanted to highlight the general complexity I see at many client related to setting up a new Virtual Machine.  I created a video and entered it into the Windows Azure Makes Me FAST Contest.  The video is called “The Story of your Life – Mr. Virtual Machine”.  It is a “remake” of the old TV Show This Is Your Life well at least that was the goal.

Take a look at the video below and vote for it if you like what you see!

Step 1: Got to http://www.meetwindowsazure.com/fast and find my video.  The videos are in the middle of the page.  You might have to click the right arrow to see it.

Step 2: Look for video titled “The Story of your Life – Mr. Virtual Machine by Stephen W. Thomas”.

Step 3:  Watch it and Vote for it if you like it.

Of course, if you do not like the video please do not vote for it.  This website has a lot of other interesting videos.  The coolest, next to mine of course, is the one by Alan Smith – “Rapid Massive On-Demand Scalability Makes Me Fast!”.  It is well worth a watch.

 

Windows Azure Virtual Hard Disk (blob storage) Cross Account Copy, Lease Break, and Management Tool

Windows Azure Virtual Hard Disk (blob storage) Cross Account Copy, Lease Break, and Management Tool

Download this sample using the download button below.

Basic Steps for Cross Account VHD Copy:

  1. Shut down your Virtual Machine.
  2. Delete your Virtual Machine.
  3. Delete the associated Image or Disk inside the Virtual Machine Portal. This does not remove the underlying blob of the vhd.
  4. Copy the blog from one storage account to another.
  5. Add your vhd back and recreate the virtual machine.

Known Issues (per my research) with VHD Copying– make sure you understand these issues and limitations. I assume most are related to preview issues.

  • If you copy a vhd that is Leased (configured as an Image or Disk inside the Virtual Machine Portal) the Source Disk will become unusable.
  • If you copy a vhd that is Leased (configured as an Image or Disk inside the Virtual Machine Portal) the Destination Disk will likely not work. I would say about 75% of the time they do not work. I just re-tested this tonight and they worked.
  • Copying from one data center to another seems to be as slow as downloading the file.
  • When downloading the file, make sure you do not close the form or the download will stop.
  • Copy Status does not seem to be working. I either get NULL or Pending all the time. Probably a user error on my part…. The best way to find out if the copy is complete is to check the file size on the destination. It is 0 MB until the copy is complete.

Features:

  • Visual view of vhds contained inside a Storage Account
  • Simple, one click Delete of vhds
  • Simple, one click Lease Break of vhds (for orphaned vhds – see more here)
  • One click download of a vhd, tested to work with Hyper-V (downloads at a rate of about 3 MB/sec)
  • Support for easily making a copy of a VHD within the same Azure account
  • Support for making a vhd copy across Window Azure Accounts within the same region within a few seconds
  • Support for making a vhd copy to any account in any region (slow when out of region)
  • Prevents you from making a copy of a vhd with an existing Lease
  • Uses the Windows Azure Storage API version 1.7.1 (github)

Advanced Features (with REST API Management Certificate):

  • Visual view of all vhds contained inside a single Windows Azure Account
  • See a “***” by vhds inside the Source storage account
  • List all custom user images inside a single Windows Azure Account

Missing Features (i.e. items I hope to add later):

  • Ability to upload a vhd
  • Ability to get details on an Image

 

Quick How-To’s:

How to work with just one Storage Account:

Set just a Source Configuration inside the app.config file. I also have a check box for “source only” that will try to auto determine what you want to do. The default is Source Only.

How to Copy a vhd into the same account:

Inside the app.config file for the tool, set the Source and Destination to the same Storage Account.

How to Copy a vhd into another account in the same region (inter-account or cross-account):

Inside the app.config file for the tool, set the Source to the Storage Account that has the source vhd and set Destination to Storage Account that you want for the Destination. The destination container vhds does not need to exist. The tool will create it for you. Click “Copy”. The Destination list should refresh and the copy already be compete. You will know it is complete when the size of the vhd is not 0.

How to Copy a vhd cross region:

Inside the app.config file for the tool, set the Source to the Storage Account that has the source VHD and set Destination to Storage Account that you want for the Destination. The destination container vhds does not need to exist. The tool will create it for you. Select a vhd in the List box that is not lease. Change the vhd name if you wish. Click “Copy”. Click on “List All VHDS” on the top right until you see the file size of the Destination change from 0 to the size of the VHD. This will take a long time, up to 8 hours. I would not close the form until I have confirmed it was completed.

How to Download a Source vhd:

Inside the app.config file for the tool, set the Source to the Storage Account that has the source VHD. Click on “List All VHDS”. Select the VHD you want to download inside the List Box. Click on “Download”. You will be prompted for the download location. Make sure you have enough disk space. Leave the tool open until you see a Completed notice on the top right of the tool. This will take up to 8 hours. Do not close the form or the download will stop.

How to Break a Lease or Delete a vhd on the Source or Destination:

Inside the app.config file for the tool, set the Source and Destination to the Storage Accounts that has the VHDS. Click on “List All VHDS”. Using the List Box, select a single vhd from the list. Click on “Break VHD Lease” to break the existing lease or “Delete VHD” to delete the vhd. Note: this operations are not undoable. Using these incorrectly can result in loss of data or vhds.