解决Windows10运行VMware Workstation出现与Device Guard不兼容导致无法创建与运行虚拟机问题

前言: 在win10中安装docker后,需要开启Hype-V,但是当运行VMware Workstation虚拟机时发现其与Device/Credential Guard 不兼容的错误。推荐使用解决方案一

原因:

Windows 10默认不会打开Hyper-V,但是安装Docker需要打开Hyper-V, Hyper-V是微软提出的一种系统管理程序虚拟化技术,能够实现桌面虚拟化 。而Windows 10开启Hyper-V后与VMware Workstation冲突从而无法新建虚拟机,因为它们都需要使用CPU,开启其中一个就会造成CPU被占用,另一个就不能使用。

解决方案一:

关闭Hyper-V,重启电脑

打开cmd命令窗口(管理员)输入关闭Hyper-V的命令用来禁用虚拟机监控程序,然后重启电脑就完美解决不兼容的问题,具体命令如下:

bcdedit /set hypervisorlaunchtype off

开启Hyper-V,重启电脑

如果需要开启Hyper-V,在cmd命令窗户 (管理员) 输入开启Hyper-V的命令用来开启虚拟机监控程序,然后重启电脑就可以使用Windows 10 中的docker了,具体命令如下:

bcdedit /set hypervisorlaunchtype auto

解决方案二:

通过增加Windows 10启动项,来解决这个问题。一个开启Hyper-V,一个关闭Hyper-V,在系统启动页面选择对应的启动项就可以了。就比如一台电脑安装多个操作系统,开机时需要选择要进的操作系统,情况类似。

新建启动项

  1. 打开cmd命令窗口(管理员),输入下面命令,新建启动项

    bcdedit /copy {default} /d "Windows 10 With Hyper-V"
    

  2. 然后将执行得到的那一串序列号填入下面的指令进行执行,执行之后会提示“操作成功完成”。

    bcdedit /set {5e895997-dfa5-11ea-acdf-86de2325951c} hypervisorlaunchtype off
    
  3. 输入下面命令,可以查看启动项列表,如要删除,参考下方 第6小节 bcdedit 常用命令指引

    bcdedit /enum
    

  4. cmd命令窗口(管理员),输入下面命令,关闭guard

    mountvol X: /s 
    copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y 
    bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d “DebugTool” /application osloader 
    bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path “\EFI\Microsoft\Boot\SecConfig.efi” 
    bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215} 
    bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO,DISABLE-VBS 
    bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X: 
    mountvol X: /d
    
  5. 重启计算机,按照系统引导时的提示选择对应的系统。

  6. Bcdedit 常用命令指引

    # 显示Bcdedit全部命令帮助
    bcdedit /?
    # 指定显示store命令帮助,命令前面的斜杠可要可不要
    bcdedit /? /store
    # 查看启动项列表
    bcdedit /enum
    # 查看所有
    bcdedit /enum all
    # 设置某个启动项描述
    bcdedit /set {GUID} description "Windows 10 With Hyper-V"
    # 设置启动项显示排列顺序
    bcdedit /displayorder {current} {GUID1} {GUID2}
    # 将指定OS项添加到启动管理显示顺序末尾
    bcdedit /displayorder  {GUID} /addlast
    # 创建新的启动项目
    bcdedit /create /d "New entry"
    # 复制启动项目
    bcdedit /copy {GUID} /d "New entry"
    # 删除启动项
    bcdedit /delete {GUID}
    # 彻底删除指定的启动项
    bcdedit /delete {GUID} /cleanup
    # 设置GUID序列为默认启动项
    bcdedit /default {GUID}
    # 设置默认的启动菜单显示超时时间,单位秒 
    bcdedit /timeout 15
    

为你推荐:

posted @   wlswang  阅读(1088)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示