c# - 使用 C# / .NetCore 签署 Powershellscript
问题描述
对于我的复杂系统,我正在寻找一种方法来签署 powershellscript,而不是使用powershell,而是使用C# / .NetCore
这里是Powershell版本:
$cert=Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert
Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -Certificate $cert
我当前的解决方案启动了一个Powershell控制台
process.start
为什么我要使用 C# 而不是 Powershell 签名?
- 我的系统是 Intranet 服务
- 用户可以从应用程序中的片段编译脚本并选择其他安装文件
- 现在脚本已使用安装文件进行签名并编译为 exe(C# 控制台项目 - 在运行时使用 dotnet 编译)
- 此 exe 可由用户控制(该 exe 具有检查更新的开关)
- 现在这个 exe(更新)通过 wsus 分发并到达用户计算机并使用脚本安装安装文件。
所有这些都是一个不错的系统,但如果我不必先保存脚本来签名它会更好
进程启动 => powershell
正如您在上面所读到的,我不是在找人来做我的作业,而是找一个有足够经验的人告诉我如何在不使用 powershellpipe 的情况下使用 C# 签署脚本。
非常感谢
最好的问候
解决方案
既然投入了更多的时间,摸清了底层技术,我在 GitHub 上用微软的代码找到了解决方案。
到目前为止,stackoverflow 上还声称这是不可能的。
在此文件中,您可以找到具有以下功能的 signaturehelper 类:
internal static Signature SignFile(SigningOption option,
string fileName,
X509Certificate2 certificate,
string timeStampServerUrl,
string hashAlgorithm)
对不起,如果有人介意,我很快就找到了解决方案。至少现在我已经分享过了。
编辑:
由于底层功能,文件仍然必须先保存。所以优势是微乎其微的。
推荐阅读
- r - 使用 R 的 Dif-in-Dif (DiD) 中的倾向得分匹配 (PSM) 示例?
- node.js - 使用 cron-tab 调用 express api 与使用 node-cron
- python - Pyarrow 错误:在 pyspark 中运行 pandas udf 时
- google-sheets-formula - 如何在 Google 表格中显示二维码?
- php - 当我去本地主机时 XAMPP 不工作 - 让它工作
- python - ChromeDriver 上的 Time.sleep()
- python - Python/Pandas:如果值为 NaN 或 0,则使用同一行中下一列的值填充
- angular - Ngx-Bootstrap 和 Angular 9 ModuleWithProviders 错误
- python - Gimp Python 脚本未显示在菜单中
- lc3 - 您将如何编写代码以在用户输入的 2 个值之间添加每 4 个数字?