繁体   English   中英

使用 C# /.NetCore 签署 Powershellscript

[英]Sign a Powershellscript with C# / .NetCore

对于我的复杂系统,我正在寻找一种方法来签署 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?

  1. 我的系统是 Intranet 服务
  2. 用户可以从应用程序中的片段和 select 附加安装文件编译脚本
  3. 现在脚本已使用安装文件进行签名并编译为 exe(C# 控制台项目 - 在运行时使用 dotnet 编译)
  4. 此 exe 可由用户控制(该 exe 具有检查更新的开关)
  5. 现在这个 exe(更新)通过 wsus 分发并到达用户计算机并使用脚本安装安装文件。

所有这些都是一个不错的系统,但如果我不必先保存脚本来签名它会更好

进程启动 => powershell

正如您在上面所读到的,我不是在找人来做我的作业,而是有足够经验告诉我如何在不使用 powershellpipe 的情况下使用 C# 签署脚本的人。

非常感谢
此致

既然投入了更多的时间,摸清了底层技术,在微软的代码中找到了GitHub上的解决方案。

到目前为止,stackoverflow 上还声称这是不可能的。

这是,他们是如何做到的

在此文件中,您可以找到带有以下 function 的签名助手 class:

internal static Signature SignFile(SigningOption option,
                                           string fileName,
                                           X509Certificate2 certificate,
                                           string timeStampServerUrl,
                                           string hashAlgorithm)

对不起,如果有人介意,我很快就找到了解决方案。 至少现在我已经分享过了。

编辑:

因为底层function,还是要先保存文件。 所以优势是微乎其微的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM