如何混合编码和非编码脚本?

时间:2019-06-26 12:52:29

标签: powershell

我正在使用密码生成器,供个人使用:

当前我有:

if ( $argumentsNonValid ){ exit }

# different parameters for the generation
$setting1= 3
$setting2= 7
$setting3=13
$setting4=77

$trim=$args[0].ToUpper()

这是我脚本的开头,我想将其隐藏,因此我将其编码为Base64

但是由于我需要使用$ args [0](在下一个会话中消失),除了将其放入txt文件然后读取它之外,我不知道如何将其传递给:< / p>

PowerShell.exe -EncodedCommand "......."

-args参数对于-EncodedCommand无效

最后,我想要这样的东西:

if ( $argumentsNonValid ){ exit }

# different parameters for the generation
$setting1= 3
$setting2= 7
$setting3=13
$setting4=77

$trim=$args[0].ToUpper()

USAGE OF ENCODED STRING

有可能吗? :)

谢谢

1 个答案:

答案 0 :(得分:0)

我对要求不完全理解,而且太长了,无法发表评论。目前,这还不是答案。但我想知道这是否对我们有帮助或推动了正确的方向。

# $command contains all of the code you want encoded including the argument

$command = @'
function test {
"your argument is $($args[0])"
}
test something
'@

$encodedcommand = [convert]::toBase64String([text.encoding]::Unicode.GetBytes($command))

# Output
powershell.exe -encodedcommand $encodedcommand
your argument is something

这表明在对命令进行编码时,$args不会丢失。但是我需要帮助来了解如何进一步处理您的问题。

这似乎更适合于模块。然后,您可以创建可以设为私有或隐藏的功能。