解决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 @ 2020-09-10 22:34  wlswang  阅读(1065)  评论(0编辑  收藏  举报