Programatically Generate Remote Console URL

Version 2

    How does one programiatically query virtual center to generate the remote console URL for guests?

    ~ Cody

     


    Hi Cody,

    You cannot generate the remote console URL for the VMs using the VI SDK. You would need to use the web access to do so.

    ~ Sidharth

     


    Any guidance on doing it that way?

     


    Cody,

    It looks like that the "hash" used is just a Base64 encoding.  You can  confirm this by generating a URL, grabbing the "view" paramete, removing  the final underscore and doing a Base64 decode. And no I can't read  Base64, but I can read javascript functions in the VMDirectSetup.do.

     

    In .NET/C# that is Console.WriteLine(Encoding.ASCII.GetString(Convert.FromBase64String(b642text)));


    So for the opposite you could just work backwords and generate a base64 string that covers you.


    Console.WriteLine(Convert.ToBase64String(Encoding.ASCII.GetBytes(text2b64)));


    Looking at a couple examples I did to confirm this was the core of the  wsUrl is  "wsUrl=https://localhost/sdk?vmId=VirtualMachine|vm-9999&ui=36"


    So you would just need to update the "vm-9999" w the moref id from VI  SDK.  The ui (I think) is the integer generated from the sum of the  checkboxes you see in the ui.  false/false = 0,  true/false = 4 + 8,  false/true = 1 + 32, true/true = 4 + 32 (36 is what I used)


    So using the vm moref id and your "ui" selection you can genenratethe  URL on demand.  Build your string, encode to base64, append an  underscore "_" to the end of the b64 string, take that whole chunk and  append that to your VCs "https://<vc URL>/ui/vmDirect.do?view="  URL which will look like it was generated from the console UI.


    Hope this helps and hope that it doesn't get swatted by the mods.


    J


    Hi jrackliffe,

    What I have encoded is  "wsUrl=http://localhost:8085&vmId=VirtualMachine|1040&ui=36".  From VI SDK, the moref of vm is vm-78, but what I get is 1040. Do you  have any idea how to get 1040? Thanks for your help.

     

     

     

    WT

     

     

     



    See my post below for what you want.

     

    http://communities.vmware.com/thread/169353?tstart=0


    Thanks,
    Rick

    This document was generated from the following thread: Programatically Generate Remote Console URL