una start pasar parametros ejemplo aplicacion c# cmd netsh makecert

pasar - processstartinfo arguments c#



¿Cómo pasar múltiples argumentos en processStartInfo? (4)

Es puramente una cuerda:

startInfo.Arguments = "-sk server -sky exchange -pe -n CN=localhost -ir LocalMachine -is Root -ic MyCA.cer -sr LocalMachine -ss My MyAdHocTestCert.cer"

Por supuesto, cuando los argumentos contienen espacios en blanco, tendrá que escapar de ellos usando / "/", como:

"... -ss /"My MyAdHocTestCert.cer/""

Vea MSDN para esto.

Quiero ejecutar algún comando cmd desde c# código c# . Seguí algunos blogs y tutoriales y obtuve la respuesta, pero estoy un poco confundido, es decir, ¿cómo debo pasar varios argumentos?

Yo uso el código de seguimiento:

System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; startInfo.FileName = "cmd.exe"; startInfo.Arguments = ...

¿Cuál será el valor de startInfo.Arguments para el siguiente código de línea de comando?

  • makecert -sk server -sky exchange -pe -n CN=localhost -ir LocalMachine -is Root -ic MyCA.cer -sr LocalMachine -ss My MyAdHocTestCert.cer

  • netsh http add sslcert ipport=127.0.0.1:8085 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF} clientcertnegotiation=enable


Para makecert, su startInfo.FileName debe ser la ruta completa de makecert (o simplemente makecert.exe si está en la ruta estándar), entonces los Arguments serían -sk server -sky exchange -pe -n CN=localhost -ir LocalMachine -is Root -ic MyCA.cer -sr LocalMachine -ss My MyAdHocTestCert.cer ahora no estoy familiarizado con el funcionamiento del almacén de certificados, pero quizás deba configurar startInfo.WorkingDirectory si está remitiendo los archivos .cer fuera del almacén de certificados


System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; startInfo.FileName = "cmd.exe"; startInfo.Arguments = @"/c -sk server -sky exchange -pe -n CN=localhost -ir LocalMachine -is Root -ic MyCA.cer -sr LocalMachine -ss My MyAdHocTestCert.cer"

use / c como argumento cmd para cerrar cmd.exe una vez que haya terminado de procesar sus comandos


startInfo.Arguments = "/c /"netsh http add sslcert ipport=127.0.0.1:8085 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF} clientcertnegotiation=enable/"";

y...

startInfo.Arguments = "/c /"makecert -sk server -sky exchange -pe -n CN=localhost -ir LocalMachine -is Root -ic MyCA.cer -sr LocalMachine -ss My MyAdHocTestCert.cer/"";

La /c le dice a cmd que salga una vez que el comando ha finalizado. Todo después de /c es el comando que desea ejecutar (dentro de cmd ), incluidos todos los argumentos.