VMware Workstation 无法连接到虚拟机问题排查(一)

news2024/11/21 0:23:31

文章目录

  • VMware Workstation无法连接到虚拟机问题排查
    • 1. 问题概述
    • 2. 排查思路
    • 3. 问题修改
    • 4. 总结

VMware Workstation无法连接到虚拟机问题排查

近期在使用新电脑安装VMware Workstation,启动虚拟机实例的时候出现失败,提示为:“VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。未能将管道连接到虚拟机: 系统找不到指定的文件。”;错误截图如下:
在这里插入图片描述

在网上查了查了一下很多网友遇到了类似问题,提出过很多的解决方案:

  1. VMware服务异常。
  2. 重装VMWare Workstation。
  3. 重装VC运行时库。
  4. 通过管理员权限启动VMWare Workstation。

通过尝试“通过管理员权限启动VMWare Workstation”确实可以正常启动(其他方案都无法生效解决该问题),但是作为一名开发人员,每次都通过管理员启动程序未免显得不太专业。因此自己跟踪和排查了一下问题,比较有典型性在此记录一下。

1. 问题概述

当打开VMWare Workstation启动虚拟机的时候整个VMWare Workstation界面出现卡住,如下:
在这里插入图片描述

紧接着VMWare Workstation出现错误,如下:
在这里插入图片描述

如果通过管理员权限启动VMWare Workstation,那么虚拟机可以正常启动;那么是什么原因导致的呢?

2. 排查思路

首先,由于VMWare Workstation出现错误,那么非常显然的一点就是先查看VMWare Workstation的日志,我们可以看到如下:

2023-03-26T01:22:10.243Z In(05) vmui wui::ipc::CUnityHelper::Connect: Creating connection-ready notification event, name: {F471AC3D-CD16-4701-B15A-EC81B0D1ABAD}
2023-03-26T01:22:10.243Z In(05) vmui wui::ipc::CUnityHelper::LaunchDaemon: Running cmd line: "C:\Program Files (x86)\VMware\VMware Workstation\vmware-unity-helper.exe" -d -e:{F471AC3D-CD16-4701-B15A-EC81B0D1ABAD}
2023-03-26T01:22:10.288Z In(05) vmui VMMKS::OnMKSDeviceInfoChanged: reset pipe name now in offline.
2023-03-26T01:22:10.288Z In(05) vmui VMMKS::OnInitVMDeviceObserverDone: done.
2023-03-26T01:22:10.305Z In(05) vmui VMMgr: Finished opening VM at /vm/#db9f5aff4db2fd97/ from C:\Virtual Machines\Ubuntu 64\Ubuntu 64.vmx
2023-03-26T01:22:10.326Z In(05) vmui CVMUIApp::OpenTabInt: opened C:\Virtual Machines\Ubuntu 64\Ubuntu 64.vmx
2023-03-26T01:22:10.326Z Wa(03) vmui CMksCtl::BindToCurrentVM: Trying to bind a current VM that its MKS is not present. Returning.
2023-03-26T01:22:10.326Z In(05) vmui CMksCtl::OnMount: uninitialize view (/vm/#db9f5aff4db2fd97/).
2023-03-26T01:22:10.326Z In(05) vmui wui::MKSScreenView::Uninitialize.
2023-03-26T01:22:10.326Z In(05) vmui cui::MKSScreenView::SetRenderTarget: hostWindow and surfaceID are none. id: 0. 
2023-03-26T01:22:10.326Z In(05) vmui cui::MKSScreenView::OnHostWindowChanged, id: 0, unsetting destination and setting is rendering to false
2023-03-26T01:22:10.327Z In(05) vmui Switched to tab: C:\Virtual Machines\Ubuntu 64\Ubuntu 64.vmx
2023-03-26T01:22:10.329Z In(05) vmui SnapshotTree: Populating (C:\Virtual Machines\Ubuntu 64\Ubuntu 64.vmx)
2023-03-26T01:22:10.350Z In(05) vmui wui::control::MKSPanel::UpdateMKSLayout: MKS view is not initialized or not rendering.
2023-03-26T01:22:10.350Z In(05) vmui wui::control::MKSPanel::UpdateMKSLayout: MKS view is not initialized or not rendering.
2023-03-26T01:22:10.352Z In(05) vmui wui::control::MKSPanel::UpdateMKSLayout: MKS view is not initialized or not rendering.
2023-03-26T01:22:10.352Z In(05) vmui wui::control::MKSPanel::UpdateMKSLayout: MKS view is not initialized or not rendering.
2023-03-26T01:22:10.371Z In(05) vmui CVMUIView::UpdateView - showMks (no).
2023-03-26T01:22:10.384Z In(05) vmui CVMUIFrame::OnGuestTopologyChanged: Passing main UI rect: 0x0 @ 0,0
2023-03-26T01:22:10.384Z In(05) vmui cui::MKSScreenWindowCoordinator::HandleGuestTopologyChange: main UI rect: 0x0 @ 0,0
2023-03-26T01:22:10.384Z In(05) vmui cui::MKSScreenWindowCoordinator::HandleGuestTopologyChange: Found 0 present screens
2023-03-26T01:22:10.384Z In(05) vmui cui::MKSScreenWindowCoordinator::HandleGuestTopologyChange: Windows for extra guest monitors will not be shown
2023-03-26T01:22:10.384Z In(05) vmui cui::MKSScreenWindowCoordinator::HandleGuestTopologyChange: setting main view to all displays
2023-03-26T01:22:10.405Z In(05) vmui CnxFSVigor: Could not get the dataFileKey
2023-03-26T01:22:10.510Z In(05) vmui VMMgr::OpenVM (cfgPath=C:\Virtual Machines\Ubuntu 64\Ubuntu 64.vmx)
2023-03-26T01:22:10.540Z In(05) vmui VMMgr::Merge: Merged open request /vm/#db9f5aff4db2fd97/ into existing VM
2023-03-26T01:22:10.960Z In(05) vmui CnxFSVigor: Could not get the dataFileKey
2023-03-26T01:22:14.020Z In(05) vmui C:\Virtual Machines\Ubuntu 64\Ubuntu 64.vmx: Reloading config state.
2023-03-26T01:22:14.028Z In(05) vmui VMHS: Transitioned vmx/execState/val to poweredOff
2023-03-26T01:22:14.036Z In(05) vigorCnx VigorOfflineGetToolsVersion: updated tools version to 0
2023-03-26T01:22:14.037Z In(05) vigorCnx Win32U_GetFileAttributes: GetFileAttributesExW("C:\Virtual Machines\Ubuntu 64\Ubuntu 64.nvram", ...) failed, error: 2
2023-03-26T01:22:14.038Z In(05) vmui Vix: [foundryVMPowerOps.c:984]: FoundryVMPowerStateChangeCallback: C:\Virtual Machines\Ubuntu 64\Ubuntu 64.vmx, vmx/execState/val = poweredOff.
2023-03-26T01:22:14.038Z In(05) vmui VMMKS::OnMKSDeviceInfoChanged: reset pipe name now in offline.
2023-03-26T01:22:14.039Z In(05) vigorCnx Win32U_GetFileAttributes: GetFileAttributesExW("C:\Virtual Machines\Ubuntu 64\Ubuntu 64.nvram", ...) failed, error: 2
2023-03-26T01:22:14.039Z In(05) vmui VMMKS::OnMKSDeviceInfoChanged: reset pipe name now in offline.
2023-03-26T01:22:14.053Z In(05) vmui SnapshotTree: Emitting refresh (C:\Virtual Machines\Ubuntu 64\Ubuntu 64.vmx)
2023-03-26T01:22:14.053Z In(05) vmui SnapshotTree: Populating (C:\Virtual Machines\Ubuntu 64\Ubuntu 64.vmx)
2023-03-26T01:22:14.085Z In(05) vmui Found vmx as C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe
2023-03-26T01:22:14.085Z In(05) vmui Starting vmx as C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe
2023-03-26T01:22:36.098Z In(05) vmui VigorExecVMXExCommon: Failed to connect the pipe: The system cannot find the file specified
2023-03-26T01:22:36.098Z In(05) vmui VigorOnline_StartAndConnectEx Failed: VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program, access all directories the program uses, and access all directories for temporary files.
2023-03-26T01:22:36.098Z In(05)+ vmui Failed to connect pipe to virtual machine: The system cannot find the file specified.
2023-03-26T01:22:36.098Z In(05)+ vmui 
2023-03-26T01:22:36.098Z In(05) vmui C:\Virtual Machines\Ubuntu 64\Ubuntu 64.vmx: VMHSStartVmxVigorCb: vmPath=/vm/#db9f5aff4db2fd97/ status=error
2023-03-26T01:22:36.098Z In(05) vmui C:\Virtual Machines\Ubuntu 64\Ubuntu 64.vmx: VMHSStartVmxVigorCb: error vmdb=-44 msg=VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。
2023-03-26T01:22:36.098Z In(05)+ vmui 未能将管道连接到虚拟机: 系统找不到指定的文件。
2023-03-26T01:22:36.098Z In(05)+ vmui 
2023-03-26T01:22:36.098Z In(05) vmui vm power operation abort, error = VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。
2023-03-26T01:22:36.098Z In(05)+ vmui 未能将管道连接到虚拟机: 系统找不到指定的文件。
2023-03-26T01:22:36.098Z In(05)+ vmui  .
2023-03-26T01:22:36.098Z Wa(03) vmui VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。
2023-03-26T01:22:36.098Z Wa(03)+ vmui 未能将管道连接到虚拟机: 系统找不到指定的文件。
2023-03-26T01:22:36.098Z Wa(03)+ vmui 
2023-03-26T01:22:36.098Z In(05) vmui DlgUI: VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。
2023-03-26T01:22:36.098Z In(05)+ vmui 未能将管道连接到虚拟机: 系统找不到指定的文件。
2023-03-26T01:22:36.224Z In(05) vmui Win32U_GetFileAttributes: GetFileAttributesExW("C:\Virtual Machines\Ubuntu 64\Ubuntu 64.vmpl", ...) failed, error: 2
2023-03-26T01:22:36.224Z In(05) vmui C:\Virtual Machines\Ubuntu 64\Ubuntu 64.vmx: Reloading config state.
2023-03-26T01:22:36.230Z In(05) vmui VMHS: Transitioned vmx/execState/val to poweredOff

从上面的日志我们可以发现错误是:vmui VigorExecVMXExCommon: Failed to connect the pipe: The system cannot find the file specified。在这条日志附件我们可以发现:

2023-03-26T01:22:14.085Z In(05) vmui Found vmx as C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe
2023-03-26T01:22:14.085Z In(05) vmui Starting vmx as C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe
2023-03-26T01:22:36.098Z In(05) vmui VigorExecVMXExCommon: Failed to connect the pipe: The system cannot find the file specified
2023-03-26T01:22:36.098Z In(05) vmui VigorOnline_StartAndConnectEx Failed: VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program, access all directories the program uses, and access all directories for temporary files.

这里有三条日志:

  1. vmui Found vmx as C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe和vmui Starting vmx as C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe:这条日志应该是启动vmware-vmx.exe进程,然后启动虚拟机。
  2. vmui VigorExecVMXExCommon: Failed to connect the pipe: The system cannot find the file specified:这条日志是在VigorExecVMXExCommon函数中应该是调用ConnectNamedPipe失败,应该是没有创建管道。
  3. vmui VigorOnline_StartAndConnectEx Failed: VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program, access all directories the program uses, and access all directories for temporary files.:这条日志是VigorOnline_StartAndConnectEx返回失败,并且开始提示。

那么ConnectNamedPipe为什么出现失败呢?该函数声明如下:

BOOL ConnectNamedPipe(
  HANDLE       hNamedPipe,
  LPOVERLAPPED lpOverlapped
);

猜测是vmware-vmx.exe子进程和服务父进程进行通信使用。

这里我们可以使用API Monitor来看一下是否有管道相关的函数出现失败呢?我们可以看到如下:
在这里插入图片描述

我们可以看到VMWare.exe进程在WaitNamedPipeW失败,这个是管道客户端的一个函数,等待管道服务的创建,那应该是管道并没有被创建。

那么正常情况下是否会有问题呢?我们通过管理员权限启动VMWare Workstation,正常启动,如下:
在这里插入图片描述

从这里可以发现WaitNamedPipeW失败两次之后就成功了,而启动失败的场景就是WaitNamedPipeW一直失败,这也是VMware Workstation启动虚拟机的时候一直卡住的原因:WaitNamedPipeW失败,一直在UI主线程尝试,导致卡住。

我们可以通过Process Explorer(或者Process Hacker)工具来查看一下正常情况下管道有哪些进程在使用,如下:
在这里插入图片描述

这里可以看到是通过vmware-vmx.exe创建的,我们可以看一下失败的场景下面vmware-vmx.exe进程的运行情况。我们可以通过Process Monitor来查看一下vmware-vmx.exe进程的运行情况:
在这里插入图片描述

我们可以看到CreateFile打开C:\Windows\System32\msvcp140.dll文件失败,如下:
在这里插入图片描述

我们可以看一下这个文件的属性权限信息,如下:
在这里插入图片描述

可以看到这个文件权限出现问题了,因此我们可以得知VMWare Workstation启动失败的原因是:文件C:\Windows\System32\msvcp140.dll权限有问题,vmware-vmx.exe无法访问该文件,导致vmware-vmx.exe无法正常启动而出现错误

3. 问题修改

因此我们猜测,只要让C:\Windows\System32\msvcp140.dll文件可以被正常访问之后,该问题就可以解决了。

我们尝试修改C:\Windows\System32\msvcp140.dll文件的正常权限之后,VMWare Workstation虚拟机正常启动。该文件修改后的权限信息如下:
在这里插入图片描述

4. 总结

VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。未能将管道连接到虚拟机: 系统找不到指定的文件问题虽然比较简单,但是整个排查过程还是比较有意思的,算是一个典型问题的排查过程,在此记录一下作为一个平常开发中问题排查的思路借鉴。

当然当你遇到VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。未能将管道连接到虚拟机: 系统找不到指定的文件问题时,可以检查:

  1. C:\Windows\System32\msvcp140.dll 文件是否存在。
  2. C:\Windows\System32\msvcp140.dll文件权限是否正常。
  3. 参考检测其他依赖文件是否正常并且权限是否正常。

当然你也可以参考本文思路(或者其他思路),排查该问题产生的其他原因,如果有其他原因和思路也欢迎大家留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1269261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高性价比的挂耳式蓝牙耳机有哪些?学生党必入的几款蓝牙耳机推荐

在快节奏的现代生活中,蓝牙耳机已经成为了许多人不可或缺的伙伴,而对于预算有限的学生党来说,一副高性价比的挂耳式蓝牙耳机无疑是最理想的选择之一。本文将围绕这一主题,为大家推荐几款价格亲民、性能出色的挂耳式蓝牙耳机&#…

汉威科技亮相北京链博会:感知驱动,智链出行

11月28日,首届中国国际供应链促进博览会在北京中国国际展览中心(顺义馆)举办,该展会是全球首个以供应链为主题的国家级展会,设置智能汽车链、绿色农业链、清洁能源链、数字科技链、健康生活链5大链条和供应链服务展区&…

JRT实现缓存协议

上一篇介绍的借助ORM的增、删、改和DolerGet方法,ORM可以很精准的知道热点数据做内存缓存。那么就有一个问题存在,即部署了多个站点时候,如果用户在一个Web里修改数据了,那么其他Web的ORM是不知道这个变化的,其他Web还…

强基固本,红海云数字化重塑提升国企干部管理能力

国有企业的干部管理体系建设具有重要的战略意义,对于构建高素质专业化的干部队伍,推动企业高质量发展至关重要。特别是在党的二十大以后,建设中国特色现代企业制度,在完善公司治理中加强党的领导,加强党管干部党管人才…

15.spring源码解析-invokeBeanFactoryPostProcessors

BeanFactoryPostProcessor接口允许我们在bean正是初始化之前改变其值。此接口只有一个方法: void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory);有两种方式可以向Spring添加此对象: 通过代码的方式: context.addBeanFactoryPostProcessor 通过xml…

【UGUI】事件侦听EventSystem系统0学

前言介绍 EventSystem是Unity UGUI中的一个重要组件,用于处理用户输入事件,如点击、拖拽、滚动等。它负责将用户输入事件传递给合适的UI元素,并触发相应的事件回调函数(就是你想要做的事情,自定义函数)。 …

Chrome显示分享按钮

分享按钮不见了! Chrome://flags Chrome Refresh 2023 Disabled 左上角的标签搜索会到右上角。

《第一行代码:Android》第三版-3.4.4体验Activity的生命周期

本文的代码是在主Activity中,重载了几个生命周期函数,在日志中打印出对应的日志信息,有两个按钮,负责启动另外的Activity,并回到主Activity 由此查看日志,来体会生命周期。 MainActivity.kt 文件如下 pac…

井盖倾斜监测方式,智能井盖传感器效果

大家是否都曾经想过,为什么路面上的井盖容易发生事故?其实这主要是因为井盖倾斜或者位移等异常状态出现时,由于人员巡查的范围较大从而无法及时察觉所导致的。为了保障道路行人和车辆的安全,对于井盖的监测需要不断完善和升级。而…

C++-多态

目录 一.多态的概念 二.多态的条件 三.对实现多态的条件进行解释 四.override和final 五.三重对比 六.虚函数表和虚函数表指针 七.静态的多态和动态的多态 一.多态的概念 多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为…

《第一行代码:Android》第三版-如何为一个Activity添加layout文件

确切地说就是讲如何给一个不带view的Activity添加一个view,就是添加一个layout文件。 新建安卓项目,如果选择:就会给你创建一个没有view的Activity,如果后来你发现需要为这个Activity添加view,就是添加一个布局文件怎…

高速USB转以太网芯片CH397 UBOOT使用教程

简介 CH397 是一款高集成度、低功耗的 USB 网卡芯片,内置青稞 RISC-V 处理器、符合 USB2.1 协议规 范的高速 USB 控制器及收发器 PHY、以及符合 IEEE802.3 协议规范、支持 10M/100M 网络的以太网 MACPHY。已适配各类台式电脑、笔记本电脑、平板电脑、游戏机等的标准…

香港身份、香港永居身份、香港护照区别,三种证件之间是什么关系?

香港身份、香港永居身份、香港护照区别,三种证件之间是什么关系? 在港“通常性”住满7年之后,可以申请永居身份! 香港身份:也可以称之为临时身份,无论通过香港优才计划、高才通计划、专才计划或者留学拿身份…

ASUS(华硕) B760M-AYW WIFI D4_解决wifi不能使用

1、最近新购买了一套 diy电脑主机,选用的是 ASUS B760M-AYW WIFI D4电脑主板 win10 系统,到货后 发现右下角电脑图标处及网络适配器中 没有wifi选项 首先 在官网和旗舰店客服处,确认了 该主板 有集成wifi模块,鲨鱼鳍天线未安装…

一篇让小白彻底搞懂性能调优

什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么人来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配置:CUP Xeon…

【获奖作品公开】和鲸社区全方位协力师生备战中国大学生计算机设计大赛

11 月 23 日,2021 - 2023 年(第 14 - 16 届)中国大学生计算机设计大赛获奖作品正式上线和鲸社区! 中国大学生计算机设计大赛(下简称“大赛”或“4C”)是由教育部认证、我国高校面向本科生最早的赛事之一&a…

一文读懂Asyncio

什么是Asyncio asyncio 是用来编写并发代码的库,使用async/await语法。 asyncio 被用作多个提供高性能 Python 异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等等。 asyncio 往往是构建 IO 密集型和高层级结构化…

无人机覆盖路径规划综述

摘要:覆盖路径规划包括找到覆盖某个目标区域的每个点的路线。近年来,无人机已被应用于涉及地形覆盖的多个应用领域,如监视、智能农业、摄影测量、灾害管理、民事安全和野火跟踪等。本文旨在探索和分析文献中与覆盖路径规划问题中使用的不同方…

二叉树:已知先序中序求后序或者其他(秒解)

看图找规律哈,不明白的在评论区找我哦

【精选】600兆 保研资料包 文书+面经+择校择导经验 等等 干货满满

推免上岸学长精选保研资料包 资源简介 保研上岸某中9计算机专业学长精心整理的600多兆保研资料包,内容覆盖全面,一次将保研涉及到的面试PPT、个人陈述、中英文自我介绍、英语问题、保研常识、专家推荐信、联系导师邮件、往年保研经验贴&面经、面试…