gpt4 book ai didi

c# - 使用C#/.Net Core签署Powershell脚本

转载 作者:行者123 更新时间:2023-12-03 01:25:37 24 4
gpt4 key购买 nike

对于我的复杂系统,我正在寻找一种方法来签名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上用Microsoft的代码找到了解决方案。
    到目前为止,这里还声称在stackoverflow上是不可能的。
    这是他们的做法
    https://github.com/PowerShell/PowerShell/blob/d8f8f0a8bcbadb357f9eaafbb797278ebe07d7cc/src/System.Management.Automation/security/Authenticode.cs
    在此文件中,您可以找到具有以下功能的signaturehelper类:

    internal static Signature SignFile(SigningOption option,
    string fileName,
    X509Certificate2 certificate,
    string timeStampServerUrl,
    string hashAlgorithm)
    抱歉,如果有人介意,我很快找到了解决方案。至少现在我已经分享了。
    编辑:

    Because of the underlying function, the file must still be savedfirst. So the advantage is marginal.

    关于c# - 使用C#/.Net Core签署Powershell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63407313/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com