VMware Communities
birdie
Expert
Expert

What do hqtray.exe, vmware-tray.exe and vmware-ufad.exe processes do?

I would like to know what aforementioned processes exactly do (vmware-ufad.exe is a VMWare Agent Service.).

In addition, I would like to know if I really need to have VMWare Virtual Mount Manager Extended (especially if I am not going to ever mount any virtual disks).

Reply
0 Kudos
21 Replies
RDPetruska
Leadership
Leadership

I would like to know what aforementioned processes exactly do (vmware-ufad.exe is a VMWare Agent Service.).

Well, you can change the ufad to manual startup. It is used for the VMware Converter/Importer functionality. I'm guessing the tray ones are what will put the icon in the system tray.

In addition, I would like to know if I really need to have VMWare Virtual Mount Manager Extended

(especially if I am not going to ever mount any virtual disks).

Well, if you want your guests to run, I'd leave that one alone (as there are logs for the vmount service written to whenever you power on a guest).

Reply
0 Kudos
magic-man
Hot Shot
Hot Shot

hqtray.exe - VMware Host Network Access Status Tray Application

vmware-tray.exe - VMware Tray Process

vmware-ufad.exe - VMware Host Process for Ufa Services

vmware-authd.exe Controls VMWare Authentication and authorization for access to virtual machines (for non admin users)

The need for each of these depends on how you use VMWare...

In MY setup, I am the only user of the laptop and therefore have admin access, so I was able to disable vmware-authd, which allows non-admin users to run vmware. I only use bridged mode in all my vm's so I disabled NAT and the private VMWare network adapters and services...

BUT.... If you don't know the possible ramifications of running without a service in WS, then I would leave well enough alone, since the above mentioned stuff consumes very little, except in certain situations, like mine. The way I figured out what WS would run without was I made a backup of the VM, then used task manager to shut down the service in question and run WS to see if it broke something (during BETA only).

I DID find that I had to have the vmount2 service the hard way (restore backup).

And... when you start / run a VM, you ARE mounting the disk at that time.

All that said, make a backup or 3 and have fun!

Reply
0 Kudos
birdie
Expert
Expert

Any official comments? Smiley Wink

Reply
0 Kudos
birdie
Expert
Expert

Up!

Reply
0 Kudos
Cadwalader
Contributor
Contributor

I'm a little shocked too, to see that there is no official explaination what these processes do.

I'd like to know in particular what vmware-tray.exe does.

Especially because in idle, when I'm not even using VMWare, vmware-tray.exe hits preferences.ini once every second. Yep, look it up with processmonitor. It tries to hit that file once every second.

Is that really necessary that a helper app hits my harddrive every single second, even if I'm not using the main app?

Reply
0 Kudos
continuum
Immortal
Immortal

vmware-ufad.exe runs the Converter.

It runs along with the vstor2-driver.

Which can have several different subversions.

You can give different parameters to vmware-ufad, vstor2-driver and converter.exe.

This allows either to start in

install-less mode - remote hot clones

installed mode - local hot clone

importer mode - mode to patch inside vmdks

cold clone mode - LiveCD usage

In my tests with the WS 6 LiveCD I noticed that you don't really need any of them to run basic functions.

Got some commandlines I use with vmware-ufad but don't know if you are interested


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

Reply
0 Kudos
DaveP
Commander
Commander

Ulli

I would be interested, as I am still messing around with zero-install USB Player.

Dave

Reply
0 Kudos
continuum
Immortal
Immortal

Hi Dave

\| am interested in that too though I don't see a relation to vmware-ufad -you surely don't need this with VMplayer.

Recently I have seen a post from a guy from the government who wanted a zero-install USB-player too.

Dave - what kind of account would you want to run this from ?


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

Reply
0 Kudos
DaveP
Commander
Commander

Oh I don't think I need it but it may be useful if someone wanted to use Player with VPC from MS for example. As for running from USB I did a lot on this around new year, used the installer capabilities of the vmnetlib. Didn't quite get t right. It is something I will come back to after I finish the paper on Fusion network settings, which seems ot have the backing of VMware.

Tried your live CD last week. Very cool indeed!

Reply
0 Kudos
admin
Immortal
Immortal

The purpose of vmware-tray is to indicate when you have headless VMs running in the background.

That it hits preferences.ini every second is a bug, and I think it's unfortunately a bug it inherited from Workstation (which I think also hits the preferences file when it shouldn't be).

Reply
0 Kudos
jjbtnc
Contributor
Contributor

I'm a new workstation user and also interested in what is needed to be running as a service

currently in services i have

VMware Agent Service - vmware-ufad.exe - set to manual

VMware Authorization Service - vmware-authd.exe - set to Auto

VMware DHCP Service - vmnetdhcp.exe - set to Automatic

VMware NAT Service - vmnat.exe - set to automatic

VMware Virtual Mount Manager Extended - vmount2.exe - set to Automatic

In task manager i have

vmware-authd.exe

vmnetdhcp.exe

vmnat.exe

vmount2.exe

these are are duplicates of the services - but i also have in task manager

vmware-tray.exe and hqtray.exe - which i can't seem to find a related service for?

from what i've read i can disable the vmauthd.exe service (or maybe set to manual) as i am a single user running as an admin ?

I probably don't need vmware-ufad.exe but as it is already set to manual it's probably not running and would only be run/active if i used the Converter, so i could leave this as is?

i have a simple home network setup, wireless router, couple of pcs, i set the pcs to use static ips, and i have the VM using Bridged mode (i also set up a static ip via the settings of the OS that is running in the VM) so i believe i can disable (or set to manual) vmnat.exe ?

vmount2.exe seems important so leave alone! ??

which leaves me with vmnetdhcp.exe - looking at what i explained earlier about my network and how i run the VM , is it needed? and could i set it to disabled or manual?

hqtray.exe - VMware Host Network Access Status Tray Application - not sure if i need this running or what it does ??

and finally

vmware-tray.exe for which i can't find a corresponding service but it has an entry in the reg to run on startup - this seems to be something to do with running a VM still, even if you have closed down the workstation control panel??

As i don't ever do this i take it i can either disable this from startup ??

I'm using a pc with limited resources at the moment and all these running processes are consuming aprox 38mb and i've noticed xp is a fair bit slower booting up.

If possible i'd like to try and see what i can disable so any help would be appreciated.

thanks.

Reply
0 Kudos
jjbtnc
Contributor
Contributor

I suppose there's no harm in just trying different combos of disable or not????

think the ones i'm most interested in is the vmnetdhcp,exe, hqtray.exe and vmware-tray.exe - i'll give them a go later

Reply
0 Kudos
w_m0zart
Contributor
Contributor

If you don't want hqtray and other processes to run in the background by default, just want to minimize the amount of services and background process when vmware is not active, you can use the script below.

It's just wrapper, which starts all processes first and then starts vmware. After exiting vmware, all processes stop. Please modify the start up options for these services and remove two registry keys. (See code below).

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' This script first starts services for VMWARE, then starts VMWARE Workstation.
' Once VMWARE stops, services are stopped and terminated again.
' Prerequisites for this script:
' Modify: Computer Management -> Services -> VMware Virtual Mount Manager Extended ->Startup Type:Manual
' Modify: Computer Management -> Services -> VMware Nat Service ->Startup Type:Manual
' Modify: Computer Management -> Services -> VMware DHCP Service ->Startup Type:Manual
' Modify: Computer Management -> Services -> VMware Authorization Service ->Startup Type:Manual
' Remove HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\VMware hqtray
' Remove HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\vmware-tray
'
' written 080821 by w_m0zart / Marc Nijdam. http://www.nijdam.de/marc.html
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
 
dim pth
dim pgm1
dim pgm2
dim pgm3
dim cmnd
dim qq
 
set shell = Wscript.CreateObject("Wscript.shell") 
 
qq = Chr(34) ' define quote as constant, because shell.run does not accept a program without this function
 
' Program to start with command line options
pth = "C:\Program Files\VMware\VMware Workstation\"
pgm1 = "vmware.exe"
pgm2 = "hqtray.exe"
pgm3 = "vmware-tray.exe"
cmnd = ""
rem Now starting services
startservice ("VMAuthdService")
startservice ("VMnetDHCP")
startservice ("VMware NAT Service")
startservice ("vmount2")
shell.run qq & pth & pgm2 & qq,0,false
shell.run qq & pth & pgm3 & qq,0,false
 
shell.run qq & pth & pgm1 & qq & cmnd,1,true ' now starting vmware.exe
 
rem Now stopping services
stopservice ("VMAuthdService")
stopservice ("VMware NAT Service")
stopservice ("vmount2")
stopservice ("VMnetDHCP")
termService ("hqtray.exe") ' service which cannot be stopped with the function stopservice (...)
termService ("vmware-tray.exe") ' service which cannot be stopped with the function stopservice (...)

rem Removing registry key
shell.RegDelete( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\vmware-tray") ' And remove the key again from the registry, since vmware has written this back
 
 
sub startservice (StrService) ' Start a service with its service name in the Windows Services (via Computer Management)
	c = 0
	Do Until c = 1
		Set colServiceList = objWMIService.ExecQuery _
			("Select * from Win32_Service where Name = '" & StrService & "'")
		For Each objService in colServiceList
			Select Case objService.State
				Case "Stopped"
					objService.StartService()
					c = 1
				Case "Running"
					c = 0
				Case "Start Pending"
					c = 0
			End Select
		Next
		WScript.Sleep (1000)
	Loop
End Sub
 
sub stopservice (StrService) ' Stop a service with its service name in the Windows Services (via Computer Management)
	c = 0
	Do Until c = 1
		Set colServiceList = objWMIService.ExecQuery _
			("Select * from Win32_Service where Name = '" & StrService & "'")
		For Each objService in colServiceList
			Select Case objService.State
				Case "Stopped"
					c = 1
				Case "Running"
					objService.StopService()
					c = 0
				Case "Start Pending"
					c = 0
			End Select
		Next
		WScript.Sleep (1000)
	Loop
End Sub
 
sub termService (StrService) ' Stop a service with name StrService corresponding in the Windows Task Manager
	Dim colProcessList, objProcess
	Set colProcessList = GetObject("Winmgmts:").ExecQuery("Select * from Win32_Process Where Name ='" & StrService & "'")
	For Each objProcess in colProcessList
    		objProcess.Terminate( )
	Next
End sub

Reply
0 Kudos
birdie
Expert
Expert

Thank you very much for your script, and I'm still impatiently awaiting for the official VMWare representatives answer Smiley Wink

Reply
0 Kudos
continuum
Immortal
Immortal

Birdie - you got nerves - this thread is over a year old - didn't it got cold during last winter ? Smiley Wink

___________________________________

description of vmx-parameters:

VMware-liveCD:


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

Reply
0 Kudos
w_m0zart
Contributor
Contributor

Well you are never too late.

I just noticed that even if I remove vmware-tray from the CurrentVersion\Run hive in the registry, it is written back once vmware is started. Why this is written back is a mystery to me. I just added a line in the vbs script which removes it automatically:

shell.RegDelete( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\vmware-tray") ' And remove the key again from the registry, since vmware wrote this back

Please see the vbs script in my previous posting which has this line added.

Reply
0 Kudos
birdie
Expert
Expert

This thread is like wine, it's only getting better with age.

Reply
0 Kudos
funkyfred1933
Contributor
Contributor

Birdie,

I was able to make vmware-tray.exe permanently go away (in Workstation 6.5) by changing 'Show tray icon' to Never.

It's in Edit->Preferences on the Workspaces tab.

I was totally blown away by the memory usage of that process, 22 megs for a tray icon?!?!

Reply
0 Kudos
w_m0zart
Contributor
Contributor

I updated the previous vbs script. It is now more or less a general script for applications with processes in the background. It should work with Workstation 6.5. In the current version manual configuration which had been necessary in the previous version is performed automatically.

Upon starting, when the script notices that VMware related services or processes are running, it will configure startup type of all services and processes.

When services, processes (and an autostart registry entry) are not running/available, it will perform normal operation, which is trying to start related processes and then executes VMware.

Take some patience while executing. It may take a few seconds to start.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' This script first starts services for VMware, then starts
' VMware Workstation. Once VMware stops, services are
' stopped and terminated again.
'
' General instructions:
' Copy this file to the same directory where your target file
' resides. Modify the InitializeTable, which can be found at
' the bottom of this file.
' 
' If services or processes are running, while this script is
' started, this script will only perform a modification of
' startup options from all concerning services, registry
' entries and processes, which have been defined in the
' table.
'
' If none of the services or processes are running, this
' program will try to start all services and processes, then
' invoke the target application. Once the application is
' finished, all services and processes are disabled again
'
' written 090212 by w_m0zart / Marc Nijdam.
' http://www.nijdam.de/marc.html
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
 
Const HKLM = &H80000002 
 
dim pth
dim pgm1
dim pgm2
dim pgm3
dim cmnd
dim qq
dim FirstRun
 
' ##########
dim table(50)
dim ItemCount
InitializeTable 			' load array with list of known services and autostart entries
ItemCount=NumArrayElements (table)
' ##########
 
set shell = Wscript.CreateObject("Wscript.shell") 
 
qq = Chr(34) ' define quote as constant, because shell.run does not accept a program without this function
 
 
FirstRun = False
For TableIndex = 1 to ItemCount
	select Case table(TableIndex-1)(1)
	Case 0 ' Process which is listed in the services.msc list.
		If service_status (table(TableIndex-1)(0)) = "Running" Then
			service_stop (table(TableIndex-1)(0))
			service_setManual (table(TableIndex-1)(0))
			FirstRun = True
		End If
	Case 1 ' Process which is not listed in the services.msc list.
		If proces_status (ExtractFileName (table(TableIndex-1)(0))) = "Running" Then
			proces_terminate (ExtractFileName ((table(TableIndex-1)(0))))
			FirstRun = True
		End If
	Case 2 ' Proces autostart registry entry.
		If reg_status (table(TableIndex-1)(0)) = 1 Then
			reg_rundelete (table(TableIndex-1)(0))
			FirstRun = True
		End If
	Case Default
	End Select
Next
 
 
If not FirstRun Then
	rem ! Starting services and running target application
 
	For TableIndex = 1 to ItemCount
		select Case table(TableIndex-1)(1)
		Case 0 ' Process which is listed in the services.msc list.
			service_start (table(TableIndex-1)(0))
		Case 1 ' Process which is not listed in the services.msc list.
			shell.run qq & table(TableIndex-1)(0) & qq,0,false
		Case 3 ' Now starting the target application
			shell.run qq & table(TableIndex-1)(0) & qq,1,true
		Case Default
		End Select
	Next
 
	rem Target applicatino quited, stopping services
 
	For TableIndex = 1 to ItemCount
		select Case table(TableIndex-1)(1)
		Case 0 ' Process which is listed in the services.msc list.
			If service_status (table(TableIndex-1)(0)) = "Running" Then
				service_stop (table(TableIndex-1)(0))
				service_setManual (table(TableIndex-1)(0))
			End If
		Case 1 ' Process which is not listed in the services.msc list.
			If proces_status (ExtractFileName (table(TableIndex-1)(0))) = "Running" Then
				proces_terminate (ExtractFileName (table(TableIndex-1)(0)))
			End If
		Case 2 ' Proces autostart registry entry.
			If reg_status (table(TableIndex-1)(0)) = 1 Then
				reg_rundelete (table(TableIndex-1)(0))
			End If
		Case Default
		End Select
	Next
Else
	msgbox ("Finished configuring VMware to disable services and autostart items")
End If
WScript.Quit()
 
sub service_start (StrService) ' Start a service with its service name in the Windows Services (via Computer Management)
	c = 0
	Do Until c = 1
		Set colServiceList = objWMIService.ExecQuery _
			("Select * from Win32_Service where Name = '" & StrService & "'")
		For Each objService in colServiceList
			Select Case objService.State
				Case "Stopped"
					objService.StartService()
					c = 1
				Case "Running"
					c = 0
				Case "Start Pending"
					c = 0
			End Select
		Next
		WScript.Sleep (2000)
	Loop
End Sub
 
sub service_stop (StrService) ' Stop a service with its service name in the Windows Services (via Computer Management)
	c = 0
	Do Until c = 1
		Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where Name = '" & StrService & "'")
		If colServiceList.Count  0 Then
			For Each objService in colServiceList
				Select Case objService.State
					Case "Stopped"
						c = 1
					Case "Running"
						objService.StopService()
						c = 0
					Case "Start Pending"
						c = 0
				End Select
			Next
		Else
			c=1
		End If
		WScript.Sleep (2000)
	Loop
End Sub
 
sub proces_terminate (StrService) ' Stop a proces with name StrService corresponding in the Windows Task Manager
	Dim colProcessList, objProcess
 
	Set colProcessList = GetObject("Winmgmts:").ExecQuery("Select * from Win32_Process Where Name ='" & StrService & "'")
 
	If colProcessList.Count  0 Then
		For Each objProcess in colProcessList
    			objProcess.Terminate( )
		Next
	End If
 
End sub
 
Function service_status (StrService)
	c = 0
	Do Until c = 1
		Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where Name = '" & StrService & "'")
		If colServiceList.Count  0 Then
			For Each objService in colServiceList
				Select Case objService.State
					Case "Stopped"
						c = 1
						service_status ="Stopped"
					Case "Running"
						c = 1
						service_status ="Running"
					Case "Start Pending"
						c = 0
				End Select
			Next
		Else
			c=1
		End If
		WScript.Sleep (100)
	Loop
 
End Function
 
Function proces_status (StrService)
		Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = '" & StrService & "'")
		If colServiceList.count = 1 Then
				proces_status="Running"
		End If
End Function
 
Sub service_setManual (StrService) 'Disables in the service manager specific services according to "service name:"
   Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where Name = '" & StrService & "'")
 
   For Each objService in colServiceList
     objService.ChangeStartMode("Manual")
   Next
End Sub
 
Sub reg_rundelete (StrReg)
	rpath="Software\Microsoft\Windows\CurrentVersion\Run"
	if objReg.EnumValues(HKLM,rpath,aValueNames,aValueTypes) = 0 Then
	For i = 0 To UBound(aValueNames)
	' Check for type 'String Value' or "REG_SZ" (= 1)
		If aValueTypes(i) = 1 Then
			If objReg.GetStringValue(HKLM, rpath, aValueNames(i), sValue) = 0 Then
				if aValueNames(i) = StrReg Then
					objReg.DeleteValue HKLM,rpath,StrReg
				End If
			End If
		End If
	Next
	End If
End Sub
 
Function reg_status (rsReg)
	reg_status=0
	rpath="Software\Microsoft\Windows\CurrentVersion\Run"
	if objReg.EnumValues(HKLM,rpath,aValueNames,aValueTypes) = 0 Then
	For i = 0 To UBound(aValueNames)
	' Check for type 'String Value' or "REG_SZ" (= 1)
		If aValueTypes(i) = 1 Then
			If objReg.GetStringValue(HKLM, rpath, aValueNames(i), sValue) = 0 Then
				if aValueNames(i) = rsReg Then
					reg_status=1
				End If
			End If
		End If
	Next
	End If
End Function
 
Function NumArrayElements (NAEtable)
	NAEArrayItems=0
	For Each element in NAEtable
		If IsArray (element) Then
			NAEArrayItems=NAEArrayItems+1
		End If
	Next
	NumArrayElements=NAEArrayItems
End Function
 
Function ExtractFileName (EFNstr)
	EFNi = InStrRev(EFNstr, "\")
	ExtractFileName = Mid(EFNstr, EFNi + 1)
End Function
 
' ##########
sub InitializeTable
' Table has following structure:
' table( [index]) = Array("[Processname]", [kind of process])
'
' Processname: Name of Service, executable or registry key
' Kind of process: -1, 0, 1, 2 or 3
' -1: Item is being ignored
'  0: Service is listed with 'Service Name' in services.msc.
'  1: Service is not listed in services.msc. Use 'Image Name' in Task Manager with full path.
'  2: Processes in registry autostart key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"
'  3: Target executable. Use full path and name
	table( 0) = Array("VMAuthdService",	0)
	table( 1) = Array("VMnetDHCP",		0)
	table( 2) = Array("VMware NAT Service",	0)
	table( 3) = Array("vmount2",		-1) ' Something from previous Vmware workstation version
	table( 4) = Array("ufad-ws60",		0)
	table( 5) = Array("C:\Program Files\VMware\VMware Workstation\hqtray.exe",	1)
	table( 6) = Array("C:\Program Files\VMware\VMware Workstation\vmware-tray.exe",	1)
	table( 7) = Array("vmware-tray",	2)
	table( 😎 = Array("C:\Program Files\VMware\VMware Workstation\vmware.exe",	3)
End Sub
' ##########

Reply
0 Kudos