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

文章目录

  • 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. 参考检测其他依赖文件是否正常并且权限是否正常。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全网最新最全的Jmeter接口测试:jmeter_定时器

固定定时器 如果你需要让每个线程在请求之前按相同的指定时间停顿,那么可以使用这个定时器;需要注意的是,固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间 1、使用固定定时器位置在http请求中&#xf…

sublime Text使用

1、增加install 命令面板 工具(tool)->控制面板(command palette) -> 输入install ->安装第一个install package controller,以下安装过了,所以没展示 2、安装json格式化工具 点击install package,等几秒会进入控制面板&#xff0…

Java+SSM springboot+MySQL家政服务预约网站设计en24b

随着社区居民对生活品质的追求以及社会老龄化的加剧,社区居民对家政服务的需求越来越多,家政服务业逐渐成为政府推动、扶持和建设的重点行业。家政服务信息化有助于提高社区家政服务的工作效率和质量。 本次开发的家政服务网站是一个面向社区的家政服务网…

EUREKA: HUMAN-LEVEL REWARD DESIGN VIACODING LARGE LANGUAGE MODELS

目录 一、论文速读 1.1 摘要 1.2 论文概要总结 相关工作 主要贡献 论文主要方法 实验数据 未来研究方向 二、论文精度 2.1 论文试图解决什么问题? 2.2 论文中提到的解决方案之关键是什么? 2.3 用于定量评估的数据集是什么?代码有…

智能优化算法应用:基于乌鸦算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于乌鸦算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于乌鸦算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.乌鸦算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

记录一次如何查询mysql分库分表数据

一、前言 本次查询是在未知如何分库分表的情况下,对表数据进行查询,其中有的字段为JSON结构。需要提取JSON中某个字段的内容。 二、查询步骤 1、第一方式是将所有分表数据进行union all select * from apporder.ord_shopping_order union all sel…

2023 年 IntelliJ IDEA下载、安装教程,附详细图文

大家好,今天为大家带来的是 2023年 IntelliJ IDEA 下载、安装教程,超详细的图文教程,亲测可用。 文章目录 1 IDEA 下载2 IDEA 安装3 IDEA 使用4 快捷键新手必须掌握:Ctrl:Alt:Shift:Ctrl Alt&a…

2023.11.28 使用tensorflow进行“三好“权重分析

2023.11.28 使用tensorflow进行"三好"权重分析 这是最基础的一个神经网络问题。许久没有再使用,用来做恢复训练比较好。 x1w1 x2w2 x3*w3 y,已知x1,x2,x3和y,求w1,w2,w3 这是一个三元一次方程,正常需要三组数据就能…

IC修真院 | 芯片嵌入式课程重磅上线!

万物互联的时代,离不开嵌入式。 从传统的家用电器到工业控制,从汽车电子到医疗保健,从军事应用到物联网,嵌入式系统无处不在。 我们的后台也经常能收到大家关于“嵌入式”的咨询,也了解到了大家对于嵌入式课程的迫切…

虚幻学习笔记1—给UI添加动画

一、前言 本文所使用的虚幻版本为5.3.2,之前工作都是用unity,做这类效果用的最多的是一个DoTween的插件,在虚幻中都内置集成了这这种效果制作。 图1.1 UI动画 二、过程 1、首先,在诸如按钮、图像等可交互控件中选中,如…

MySQL进阶知识:InnoDB引擎

目录 逻辑存储结构 架构 内存结构 Buffer Pool Change Buffer Adaptive Hash Index Log Buffer 磁盘结构 后台线程 事务原理 redo log undo log MVCC 隐式字段 undo log版本链 readView 逻辑存储结构 这张图在我之前的笔记中出现过,接下来我们详细介…

力扣6:N字形变化

代码&#xff1a; class Solution { public:string convert(string s, int numRows){int lens.size();if(numRows1){return s;}int d2*numRows-2;int count0;string ret;//第一行&#xff01;for(int i0;i<len;id){rets[i];}//第k行&#xff01;for(int i1;i<numRows-1;…

智能优化算法应用:基于树种算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于树种算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于树种算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.树种算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

探索港口机械设备健康管理解决方案

在当今港口行业&#xff0c;机械设备的健康管理对于保障港口运营的高效性和可持续发展至关重要。随着港口吞吐能力的不断增加和机械设备的复杂化&#xff0c;探索有效的机械设备健康管理解决方案成为了当务之急。本文将从多个方面探讨如何加强港口机械设备的健康管理。 图.港口…

时间序列预测实战(二十一)PyTorch实现TCN卷积进行时间序列预测(专为新手编写的自研架构)

一、本文介绍 本篇文章给大家带来的是利用我个人编写的架构进行TCN时间序列卷积进行时间序列建模&#xff08;专门为了时间序列领域新人编写的架构&#xff0c;简单不同于市面上大家用GPT写的代码&#xff09;&#xff0c;包括结果可视化、支持单元预测、多元预测、模型拟合效…

【多属性对象“{a:1,b:2}”】与【单属性对象的数组“[{a:1},{b:2}]”】的相互转换

前端开发的某些场景&#xff08;比如用echarts开发某些可视化图表&#xff09;经常需要将【多属性对象&#xff0c;如“{a:1,b:2}”】与【单属性对象的数组&#xff0c;如“[{a:1},{b:2}]”】做相互转换&#xff0c;以下是不通过循环&#xff0c;简洁实现这种转换的方法&#x…

如何选择共模噪声滤波器

在当前电子产品中&#xff0c;绝大多数的高速信号都使用地差分对结构。 差分结构有一个好处就是可以降低外界对信号的干扰&#xff0c;但是由于设计的原因&#xff0c;在传输结构上还会受到共模噪声的影响。 共模噪声滤波器就可以用于抑制不必要的共模噪声&#xff0c;而不会对…

2021年9月15日 Go生态洞察:TLS加密套件的自动排序机制

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

【RabbitMQ】RabbitMQ快速入门 通俗易懂 初学者入门

目录 1.初识MQ 1.1.同步和异步通讯 1.1.1.同步通讯 1.1.2.异步通讯 1.2.技术对比&#xff1a; 2.快速入门 2.1.安装RabbitMQ 2.2.RabbitMQ消息模型 2.3.导入Demo工程 2.4.入门案例 2.4.1.publisher实现 2.4.2.consumer实现 2.5.总结 3.SpringAMQP 3.1.Basic Que…

java+springboot物流管理系统设计与实现wl-ssmj+jsp

物流管理系统的开发和综合性的物流信息网站平台的建设。研究的重点是运输管理信息系统&#xff0e;本系统是一套基于运输作业流程的管理系统&#xff0c;该系统以运输任务、货品、商务三大线索设计开发。运输任务是该管理系统的核心&#xff0c;系统通过对运输任务中的接收、调…