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).
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).
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!
Any official comments?
Up!
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?
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
Ulli
I would be interested, as I am still messing around with zero-install USB Player.
Dave
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 ?
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!
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).
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.
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
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
Thank you very much for your script, and I'm still impatiently awaiting for the official VMWare representatives answer
Birdie - you got nerves - this thread is over a year old - didn't it got cold during last winter ?
___________________________________
description of vmx-parameters:
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.
This thread is like wine, it's only getting better with age.
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?!?!
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 ' ##########