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

因SHA256类型未找到错误无法在PowerShell 7中安装InSpec

解决PowerShell 7安装InSpec时的SHA256Cng类型找不到错误

问题原因

[Security.Cryptography.SHA256Cng]是仅.NET Framework专属的加密类型,而PowerShell 7基于.NET Core/.NET 5+运行时,默认不包含该类型。Chef官方的install.ps1脚本目前仍依赖这个.NET Framework特有的类型,导致在PS7中执行安装时触发报错。你测试SHA256功能正常,是因为PS7使用的是.NET Core兼容的SHA256实现(如SHA256.Create()),和脚本依赖的类型并非同一实现。

解决方案

方法1:修改安装脚本的哈希验证逻辑

  1. 先把安装脚本下载到本地:
    Invoke-WebRequest -Uri https://omnitruck.chef.io/install.ps1 -OutFile .\install.ps1
    
  2. 用文本编辑器打开install.ps1,搜索包含SHA256Cng的代码段(通常是文件哈希验证部分),将其替换为PS7兼容的代码:
    原代码示例:
    $sha256 = New-Object Security.Cryptography.SHA256Cng
    $hash = $sha256.ComputeHash([System.IO.File]::ReadAllBytes($filePath))
    
    替换为:
    $sha256 = [System.Security.Cryptography.SHA256]::Create()
    $hash = $sha256.ComputeHash([System.IO.File]::ReadAllBytes($filePath))
    
  3. 在PS7中执行修改后的脚本:
    .\install.ps1; install -project inspec
    

方法2:手动下载安装包安装

跳过脚本安装流程,直接手动获取InSpec安装包:

  1. 找到对应Windows版本的InSpec MSI安装包(匹配你的系统架构)
  2. 下载后,可直接双击MSI完成安装,或在PS7中用命令行静默安装:
    Start-Process msiexec.exe -ArgumentList '/i "C:\path\to\inspec-x.x.x-x64.msi" /qn' -Wait
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:25:06