Powershell脚本加密与解密

本文介绍了在项目中遇到的PowerShell脚本加密和解密的问题,特别是关于参数传递的困扰。作者分享了用于加密和解密的自定义函数,并详细描述了解决Split-Path命令在加密后无法识别的问题。最终,提供了成功执行加密脚本的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上查了powershell 加密解密的方法,有把ps脚本加密成bat的,有加密成bin的,尝试了一下,都的可以,有的不行。

我们项目中用到一个这样的脚本加密的,代码半天就写完了,加密的事情纠结了一星期,最终纠结在那个有名的加密的博客,没解释清楚如何传参进去到Invoke-Expression中,尝试了Invoke-command也没解决。

我传参的原因很简单,ps中的代码有取得当前路径的,我用到了Split-Path -parent $MyInvocation.MyCommand.Path,结果在加密后报错,不能识别这个参数。虽然最终结果用 dir .解密,仍旧是耽误了好长时间。

现把用到的加密和解密的代码列出来,

 


cls

function Encrypt-Script($path, $destination) {
  $script = Get-Content $path | Out-String
  $secure = ConvertTo-SecureString $script -asPlainText -force
  $export = $secure | ConvertFrom-SecureString
  Set-Content $destination $export
  "Script '$path' has been encrypted as '$destination'"
}


function Execute-EncryptedScript($paths, $Param) {
  trap { "Decryption failed"; break }
  $raw = Get-Content $paths
  $secure = ConvertTo-SecureString $raw
  $helper = New-Object system.Management.Automation.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值