Showing posts with label cmdlets. Show all posts
Showing posts with label cmdlets. Show all posts

Reading Notes #88




System Management



Reading Notes #83

Post-it Put your code here

Suggestion of the week




  • Teach your kids to be fans (Scott Hanselman) - Good lesson. Today it's simple to send/ publish hard critics about anything... It is also that easy to congratulations... so do it.


How to copy blobs or VHDs between different Windows Azure subscription

(An updated version of this post is available in both English and français)

First of all, why would you want to copy Virtual Hard Drive (VHD) or a blob from a Windows Azure subscription to another? It could be for: doing backups, because your Windows Azure trial is ending, to get a copy of a client’s VM to investigate a problem. So, when one of my client asked me if it was possible to do it, my answer was: “Yes it is, using command line tools”. But since he was looking for a simple solution, I wrote him a little script that I will share here so everyone can enjoy it.

Get Started

To do the copy, you only need to do one PowerShell command. But, in order to execute this command, you need to have Windows Azure command-line tool already installed. At the end of this post, the script to install the Windows Azure command-line tool will be provided.

The command

Having installed the required tool, you can execute this one line of code from the Windows Azure command-line:
azure vm disk upload <source-path> <target-blob-url> <target-storage-account-key>

Get the source

In this command, you must replace <source-path> by the url of the VHD or blob that you want to copy from.
You can get this url through the Windows Azure Portal, using your account where you want to copy from.

  1. On the left side of the screen click on the Storage icon.
  2. Then click on the storage name.
  3. From the top of the screen click on Containers
  4. And when the container list appears click on the name of the container to get the details view.


Get the destination

2012-11-11_0803Now that the "from" as been identified, we need to specify the “to”. We must replace the <target-blob-url> by the url of the Windows Azure Storage container in the destination Azure subscription. If the Blob container already exists, just connect to this account and follow the previous steps. Otherwise, you need to create a new one by using the “+” imbutton on the bottom left of the screen.

2012-11-11_0754_Public_ContainerThe easiest way is to set the container with a public access at the time of the transfer. You can set this option when creating or editing the container using the button at the bottom of the screen.

Then specify the access propriety to Public Container.

Get the key

2012-11-11_0821Last part but not the less important we must specify the storage account key and replace the <target-storage-account-key> with it. You can find it by accessing the Manage Keys button from the dashboard of the Storage. You can use either the primary or the secondary access key.


Install the Windows Azure command-line tool

2012-10-13_0826Here is a little script that you should put in a “.cmd” or “.bat” file. It will install the Windows Azure command-line tool with Node.js and Chocolatey. After running the script, a console window that looks like this should be open.

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString(''))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin
@powershell "cinst nodejs.install" && SET PATH=%PATH%;%ProgramFiles(x86)%\nodejs
@powershell -ExecutionPolicy unrestricted "npm install azure -g" && SET PATH=%PATH%;%USERPROFILE%\AppData\Roaming\npm\
@powershell azure


  • Windows Azure command-line tool
  • Node Packaged Modules or Node.js
  • Chocolatey 

  • Reading Notes #70

    BizTalk Server 2013 on-premise and cloudCloud

    • The Hanselminutes Podcast - Loud and clear. The best description of what is TypeScript and why I should start using it.
    • What's New? ( - Nice update for DynamoDB.
    • SSDT Team at PASS Summit - List of the presentation about SSDT at the PASS Summit.
    • Reactive Extensions (Rx) is now Open Source (Scott Hanselman) - Learn more about Rx and is new open source status.
    • TypeScript - Tutorial ( - Directly from the official TypeScript website, this tutorial get you up and ready in a few. Well explain. And a really nice repl page.

    • BizTalk Server 2013 BETA (Saravana Kumar) - A lot of people was seeing it dead, but BizTalk 2013 is stronger than ever with a lot of the great improvement and new features... be ready!


    Reading Notes #39

    Mozy cloud storage


    […]shows a friendly face to customers and still provides the detailed technical information developers will need in his article Rich Custom Error Handling with ASP.NET. […]
    […]Wade Wegner describes the steps he recommends in his post Using ELMAH in Windows Azure with Table Storage. […]
    […]To learn more about ELMAH, see the MSDN article Using HTTP Modules and Handlers to Create Pluggable ASP.NET Components by Scott Mitchell and Atif Aziz.[…]



      ~ Frank