Первый подозреваемый в подобных ситуациях в моей книге, отсутствие подробностей, является своего рода проблемой пути. Попробуйте полностью указать путь к команде и посмотрите, работает ли он лучше.
pnet.StartInfo.FileName = Environment.SystemDirectory + @"\netsh.exe"; // or something like that
Я бы с осторожностью отнесся к общей схеме вызова внешней команды таким образом, но, поскольку вы предоставляете как имя файла, так и его аргументы, это должно быть достаточно безопасно. Если у вас есть время, и вы еще этого не сделали, возможно, вы захотите узнать, есть ли API, чтобы делать то, что вы хотите. Скорее всего, есть; netsh
вероятно, не magic
.