Как запустить .bat и передать пароль внутри него - PullRequest
0 голосов
/ 15 марта 2019

Я создаю .bat файл в файле с переменными с StreamWriter для генерации CSR.

    string[] lines =
                 {
                    "ECHO OFF",
                    "CLS",
                    "set default_keystore_pwd=" + password,
                    "req -out " + CN + "_csr -newkey rsa:2048 -passin pass:%default_keystore_pwd% -keyout " + CN + "_prv.key -subj "+"\"/C=" +Country+"/ST=" + State + "/L=" + City + "/O=CompanyXXX/OU=" + OU + "/CN=" + CN+"/emailAddress="+Email+"\"", // arguments
                    "start notepad "+CN+"_csr" // opens generated file
    };
    using (StreamWriter outputFile = new StreamWriter(Path.Combine(csr, "gen.bat")))
                {
                    foreach (string line in lines)
                        outputFile.WriteLine(line);}

cmd.StandardInput.WriteLine("gen.bat"); // running generated .bat file

Я пытался добавить -passin pass:%default_keystore_pwd% в .bat, но когда запускается cmd (для gen.bat), он все равно просит ввести пароль.

использование StandartInput не помогает, так как выполняется только после завершения работы gen.bat.

Вопрос: Как мне запустить файл .bat из c # и передать ему пароль при появлении запроса?

openssl.conf:

#Passwords for private keys if not present they will be prompted for
#input_password = secret
#output_password = secret

Должен ли я откомментировать их и поставить здесь переменную пароля? Если так, есть ли простой способ найти конкретную строку в файле и заменить ее с помощью c #, что-то с File. ? Или мне нужно перезаписать весь файл?

Спасибо

...