以下为心路历程,想要直接解决可以直接拉到最后看后续
百度要你取消Hyper-V功能,但我要用docker,以及一些相关的帖子都无效的情况下
https://blog.csdn.net/u013667796/article/details/85843151
自己根据官方文档进行研究解决办法,
https://kb.vmware.com/s/article/2146361
需要关闭DG/CG,然后链接都微软的相关文档
https://docs.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-manage
直接找Disable方法
要编辑组策略和删除注册表的。感觉不太好惹,继续下翻看到
惊喜,有一步解决的工具
https://www.microsoft.com/en-us/download/details.aspx?id=53337
下载下来解压
里面的脚本就是这个ps1后缀的文件,根据官方文档,非英文系统要把脚本的
$OSArch = $(gwmi win32_operatingsystem).OSArchitecture
改为
$OSAch = $((gwmi win32_operatingsystem).OSArchitecture).tolower()
保存
ps1要用powershell打开,右键,管理员启动!管理员启动!管理员启动!
定位文件夹位置,我是在下载文件夹下的,
然后运行
DG_Readiness_Tool_v3.6.ps1 -Disable -AutoReboot
如果你会遇到下面的问题(找不到命令 DG_Readiness_Tool_v3.6.ps1),继续看下去
如果没遇到就电脑就会30s自动重启,可以直接跳到下面重启后的部分
windows推荐使用
.DG_Readiness_Tool_v3.6.ps1 -Disable -AutoReboot
依旧有问题,根据推荐网址来到
https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-6
全页大致扫读一边,讲的是powershell运行的脚本的权限问题
先在powershell中输入
Get-ExecutionPolicy
可以看到我们先在是处于受限状态,不能运行脚本
然后更改权限为RemoteSigned
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
然后Y更改执行策略
更改成功!
重新运行
.DG_Readiness_Tool_v3.6.ps1 -Disable -AutoReboot
会有一张类似下面这张图的(我已经修改过一遍了,可能有点不一样)
中间会说系统不到指定表是正常的,这些原本就是要被删除的,找不到也无所谓,然后就会在30s后重启
重启之后,会进入到下面这个画面
这就是最早官方文档要我们Disable的东西,F3确认,
下一个是要我们是否disabe虚拟化的基础安全的东西,我也F3确认了,
然后开机,打开VMWare,继续学习鸟哥的linux课程了。
最后,如果需要重新enable的话可以根据上面的微软官方文档中的信息重新启用组策略
https://docs.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-manage
最后的最后,附上随手找到的一个关于这个Decive guard的介绍
https://docs.microsoft.com/zh-cn/previous-versions//dn986865(v=vs.85)
后续,打开后Docker后无法打开VMware,
报“Hardware assisted virtualization and data execution protection must be enabled“
报“Hardware assisted virtualization and data execution protection must be enabled”
查询了一下,发现vmware和docker不兼容,上面的VMware与 Device/Credential Guard 不兼容问题,也是这么引起的,
参考
https://blog.csdn.net/u012588542/article/details/85378508
https://blog.csdn.net/W_C_X/article/details/89474587
但是没有这么复杂的解决办法,用docker就启用守护进程,重启,用vmware就关闭守护进程,重启
1,如果用docker,
以管理员身份运行cmd:
bcdedit /set hypervisorlaunchtype auto
重启
2,开启虚拟机linux,解决VMware与 Device/Credential Guard 不兼容
以管理员身份运行cmd:
bcdedit /set hypervisorlaunchtype off
重启
现在知道了,最开始那个csdn的帖子的那一行命令的用处了,自己当时还不知道要用管理员运行那一行命令。。。
绕了好大一圈才想通