我有一个 PowerShell 脚本,它在客户机器上安装补丁(包含要添加的文件集)。为此,我创建了一个执行此 PowerShell 脚本的批处理文件。
要让客户运行此批处理文件,还必须将 PowerShell 脚本文件放置到客户计算机上。
PowerShell 脚本为文本格式,便于客户阅读和理解。
我们可以将这个脚本文件转换成某种不可读的格式(例如 bin 或 exe),使客户无法读取它吗?
最佳答案
您可以将脚本转换为 Base64 编码,这样就不能立即读取。要将 PowerShell 脚本文件转换为 Base64 字符串,请运行以下命令:
$Base64 = [System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes('c:\path\to\script file.ps1'));
要启动 Base64 编码的脚本,您可以调用 PowerShell.exe,如下所示:
powershell.exe -EncodedCommand <Base64String>
例如,以下命令:
powershell.exe -EncodedCommand VwByAGkAdABlAC0ASABvAHMAdAAgAC0ATwBiAGoAZQBjAHQAIAAiAEgAZQBsAGwAbwAsACAAdwBvAHIAbABkACEAIgA7AA==
将返回以下结果:
Hello, world!
关于batch-file - 将 PowerShell 脚本转换为不可读的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20943410/