Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a lot of virtual machines running various windows and linux operating systems, and various apps (eg MS-SQL) that I need to audit/keep track of.

The catch: Some of these machines are on isolated networks, no internet access, no management access.

The good news: I have full access to the virtualcenter server and can leverage the APIs to invoke scripts on the guest OS.

I don't necessarily NEED to know the productID/key used, but that would be a bonus..

So, How do I audit the licenses in my virtual environment where I may not have network access to the VMs?

Thanks in advance!

share|improve this question

You want to play with the VIX API if you want to build your own tools.

If you are prepared to pay (a lot) for a solution then Symantec Management Platform has a Virtual Machine Management component that works with their Server Management Suite that can do some of this and SCVMM is supposed to be able to do it\ should be able to do it soon too. I haven't used either of these for this purpose so I can't swear that they will work but it's been a pretty hot VI management topic for a while.

share|improve this answer

Please define network access for me, in this context, because if you have administrative access to the Vcenter, you can access the console on each endpoint. While it may prompt you for a login (something you may not have) you would have to have network access in order to be able to interface with the guest.

Now, back on topic.

You can use PowerCLI in order to access, and execute scripts on guest OSes.

Example 1 (most pertinent)

Example 2

My suggestion is to adapt the examples for an auditing script, or an inventory script. This would likely be per OS (Powershell, WMI, *nix shell).

References for PowerCLI:

share|improve this answer
Network access in this context means directly from/to the guest machine. Console access comes from the ESX host, not the guest VM. – JakeRobinson Sep 15 '10 at 2:19
Network access in this context means directly from/to the guest machine. Console access comes from the ESX host, not the guest VM. I am an avid PowerCLI user and have used invoke-vmscript, which is kind of the easy part. I'm not afraid to write a little perl either, but I need a good resource on how to actually gather the info from the guest VMs... – JakeRobinson Sep 15 '10 at 2:25
You will have to do this on a per operating system basis, as mentioned. I would suggest something like or equivalents... I believe you will need administrators to place these on each local host, or a restricted account with something like auditing access. – Brennan Sep 15 '10 at 21:00

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.