Как смешать закодированные и некодированные сценарии? - PullRequest
0 голосов
/ 26 июня 2019

Я работаю над генератором паролей, для личного пользования:

В настоящее время у меня есть:

if ( $argumentsNonValid ){ exit }

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

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

Это начало моего скрипта, я хочу его скрыть, поэтому закодировал в Base64

но поскольку мне потребовалось использовать $ args [0] (который исчезнет в следующем сеансе), за исключением того, что я поместил его в текстовый файл и затем прочитал, я не знаю, как передать его:

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 голосов
/ 26 июня 2019

Я не совсем понимаю требование, и это слишком долго, чтобы оставлять комментарии. На этот раз это не ответ; но я хотел бы знать, помогает ли это или толкает нас в правильном направлении.

# $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 не теряется при кодировании команды. Но мне нужна помощь, чтобы понять, как действовать дальше по вашим вопросам.

Кажется, это было бы лучше для модуля. Затем вы можете создавать функции, которые вы можете сделать частными или скрытыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...