Member 14686752 Ответов: 2

Команда работает на powershell, но она не работает через C# exe


Команда Powershell-это: Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 99

Эта команда работает, когда я запускаю ее в PowerShell от имени администратора. :
Код C#
PowerShell ps = PowerShell.Create();
ps.AddCommand("Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 99");
try
{
 ps.invoke();
}
catch(Exception e)
{
 MessageBox.Show(e.Message+"");
}

Когда я запускаю приведенный выше код, я получаю сообщение об ошибке "Термин" Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 99" не распознается как имя командлета, функции, файла сценария или действующей программы. проверьте правильность написания имени или, если был включен путь, убедитесь, что он правильный, и повторите попытку"

Пожалуйста, помогите мне решить эту проблему.

Что я уже пробовал:

Я не нашел много в интернете, чтобы решить эту проблему

Member 14686752

Вышеописанная работа, которую я выполняю, предназначена для изменения приоритета сетевых карт, есть ли другой способ сделать то же самое с помощью C#?

2 Ответов

Рейтинг:
1

Garth J Lancaster

Попробуйте настроить его так Выполнение сценариев PowerShell из C# | Microsoft Docs[^]

Мне действительно нравится

using (PowerShell PowerShellInstance = PowerShell.Create())
{
// ... 
}


(использование) для настройки и приведения в порядок экземпляра Powershell


Member 14686752

Получение той же ошибки

Garth J Lancaster

посмотрим, сработает ли это https://www.codeproject.com/Articles/18229/How-to-run-PowerShell-scripts-from-C

Рейтинг:
1

OriginalGriff

Проверьте, что ваше приложение C# было повышено: если оно не работает от имени администратора, то ничего, что оно пытается запустить, также не будет.


Member 14686752

Да он работает от имени администратора