You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Vagrant报错找不到AmsiContext变量且误判PowerShell版本过低

根因说明

Vagrant 2.2.x版本默认调用Windows系统内置的powershell.exe(即PowerShell 5.x)获取版本信息,不会优先识别用户单独安装的PowerShell 7,因此安装PS7无法解决问题。
Amsi相关变量不存在的报错通常由两类原因触发:一是系统内置PowerShell 5的核心模块损坏,二是第三方安全软件/企业EDR/域安全策略拦截了PowerShell的AMSI接口初始化,导致变量初始化失败,Vagrant读取版本信息时被错误流的报错干扰,无法正常识别版本号,触发版本过低的误报。

解决步骤
  • 步骤1:验证原生PowerShell 5的状态
    按下Win+R输入powershell.exe启动系统内置的PowerShell 5,执行$PSVersionTable.PSVersion,确认是否会抛出Amsi相关报错,定位问题是否出在PowerShell 5本身。
  • 步骤2:修复损坏的系统文件
    以管理员权限打开cmd,执行sfc /scannow扫描修复系统核心文件,执行完成后重启电脑,再次测试vagrant命令是否恢复正常。
  • 步骤3:排查安全软件拦截
    临时关闭第三方杀毒软件、企业终端安全工具,再次运行vagrant命令测试。如果问题解决,将PowerShell进程、Vagrant安装目录加入安全工具的白名单即可。
  • 步骤4:强制Vagrant使用PowerShell 7
    新增系统环境变量VAGRANT_POWERSHELL_PATH,变量值设为PowerShell 7的执行文件完整路径,默认路径为C:\Program Files\PowerShell\7\pwsh.exe,设置完成后重启所有终端窗口,重新执行vagrant命令即可生效。
  • 临时验证方案:如果不需要永久生效,可在每次运行vagrant前,先在当前终端执行$env:VAGRANT_POWERSHELL_PATH="C:\Program Files\PowerShell\7\pwsh.exe",可临时规避该问题。

内容的提问来源于stack exchange,提问作者user2300302

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:57:00