VMware {code} Community
stemasmais
Contributor
Contributor
Jump to solution

vprobes start issue (windows)

Goodmorning

I'm using VMware workstation pro 12 on windows 10 and I'm trying to extract some information from the hypervisor with the vprobe script.

I've added the vprobe.allow = "TRUE" on the following files

C:\ProgramData\VMware\VMware Workstation\config.ini

C:\ProgramData\VMware\VMware Workstation\settings.ini

C:\Users\smais\AppData\Roaming\VMware`config.ini

C:\Users\smais\Documents\Virtual Machines\ubuntu\Ubuntu 64-bit.vmx 

The cpnfig.ini is the following file:

installerDefaults.simplifiedUI = "no"

authd.client.port = "902"

authd.proxy.nfc = "vmware-hostd:ha-nfc"

installerDefaults.autoSoftwareUpdateEnabled = "yes"

installerDefaults.autoSoftwareUpdateEnabled.epoch = "14622"

installerDefaults.componentDownloadEnabled = "yes"

installerDefaults.dataCollectionEnabled = "yes"

installerDefaults.dataCollectionEnabled.epoch = "14622"

vprobe.allow = "TRUE"

When I run vmrun with some vprobe command (vprobeListProbes, vprobeLoad, ect) I have the same result every time: Error: Unrecognized command

vmrun is working because I can manage the vm without problems.

   

What can I do?

0 Kudos
1 Solution

Accepted Solutions
dariusd
VMware Employee
VMware Employee
Jump to solution

Workstation 12 no longer uses "vmrun" for vprobes control.  There should be a separate "vmware-vprobe" program for the purpose.  I don't have a Windows installation handy to check, but I'd expect it's just a vmware-vprobe.exe inside the VMware Workstation folder in Program Files.  On a Linux host, there's /usr/bin/vmware-vprobe .

The same capabilities should be available through the new vmware-vprobe program, albeit with slightly different command-line syntax.

Please let us know if that meets your needs!

Cheers,

--

Darius

View solution in original post

0 Kudos
6 Replies
dariusd
VMware Employee
VMware Employee
Jump to solution

Workstation 12 no longer uses "vmrun" for vprobes control.  There should be a separate "vmware-vprobe" program for the purpose.  I don't have a Windows installation handy to check, but I'd expect it's just a vmware-vprobe.exe inside the VMware Workstation folder in Program Files.  On a Linux host, there's /usr/bin/vmware-vprobe .

The same capabilities should be available through the new vmware-vprobe program, albeit with slightly different command-line syntax.

Please let us know if that meets your needs!

Cheers,

--

Darius

0 Kudos
dariusd
VMware Employee
VMware Employee
Jump to solution

... aaaaaaand I was bitten by my assumption.

It looks like we no longer support vprobes on Windows hosts as of Workstation 12.  It's now only supported through the vmware-vprobe program on Linux hosts and on VMware Fusion and on the ESX hypervisor... looks like it's everything but Windows hosts.  Sorry for the misleading advice and the bad news.

Thanks,

--

Darius

0 Kudos
stemasmais
Contributor
Contributor
Jump to solution

Thanks!

To solve this problem I've installed the ESXi 6.5 but the host console still doesn't recognize the vmrun command or the vprobe commands...

0 Kudos
dariusd
VMware Employee
VMware Employee
Jump to solution

The ESXi 6.5 shell simply has a vprobe command, with much the same capabilities.  Its help text says that it's called vmware-vprobe, but it looks like the help text is wrong...

Cheers,

--

Darius

0 Kudos
stemasmais
Contributor
Contributor
Jump to solution

It's like you said! The vprobe command it's the way to execute the vp scripts but when I create a simple vp script like this below

(vprobe VMM1Hz

     (printf "testing\n"))

I obtain this error

vprobe test.vp

vmware-vprobe: Failed to load script in vmkernel: cannot enable probe "VMM1Hz" Not found

and this error

vprobe -c test.vp -m /vmfs/volumes/<volume number>/linux/linux.vmx

vmware-vprobe: Compile error: Syntax error: <cmdline>: line 1, token '.'

but the file is the same!

The config is ok, I think, because I've set the vprobe.allow in /etc/vmware/config and the vprobe.enable in /vmfs/volumes/<volume number>/linux/linux.vmx

0 Kudos
dariusd
VMware Employee
VMware Employee
Jump to solution

vprobe test.vp

vmware-vprobe: Failed to load script in vmkernel: cannot enable probe "VMM1Hz" Not found

Looks like vp scripts are no longer preferred and Emmet (.emt) is the way to do things.  At least, my super quick experiment here has been much more productive with emmett than with vp.

Try creating test.emt with the following contents:

   VMM:VMM1Hz printf("testing\n");

then run:

   vprobe -m /vmfs/volumes/<volume>/linux/linux.vmx test.emt

and it should be up and running.  The -m option accepts either a full path to the .vmx file or the VMID of the vm, as shown by the vim-cmd vmsvc/getallvms command at the ESXi shell.

and this error

vprobe -c test.vp -m /vmfs/volumes/<volume number>/linux/linux.vmx

vmware-vprobe: Compile error: Syntax error: <cmdline>: line 1, token '.'

You don't want the -c option here... that tells the vprobe utility to use the next argument as the literal text of an Emmett script to run.  In your case, you end up trying to run a script consisting of the literal text test.vp (not the contents of the file with that name), hence the error reported at the '.' token (which doesn't even exist within the file test.vp... but does exist in the text "test.vp").

For instance, you can run a "hello world" Emmett script against VMID 1 like this:

   vprobe -m 1 -c 'VMM:VMM1Hz printf("Hi there\n");'

Cheers,

--

Darius

0 Kudos