#c# #.net
#c# #.net
Вопрос:
Мы развертываем приложение, для которого требуется несколько конкретных изменений конфигурации, связанных с сетевой картой. Одним из этих изменений является отключение «Large Send Offload V2» или «LSO» из всех сетевых адаптеров. Есть ли способ сделать это программно с помощью C # и .NET? Я хотел бы написать простое консольное приложение или приложение на основе форм, которое может делать это автоматически. Я изучал System.Management.ManagementClass, но, похоже, у него нет этих дополнительных опций. Заранее спасибо за вашу помощь.
Комментарии:
1. Возможно, вы могли бы проверить, действительно ли эти настройки есть в реестре — и если да, вы могли бы сделать это таким образом.
2. Мне не удалось найти это в реестре, но я продолжу поиски.
3. Возможно, используя класс NetworkInterface и . GetProperties()?
4. Можете ли вы прислать мне ссылку на этот класс? Я нахожу только Win32_NetworkAdapter, и я не верю, что у него есть метод GetProperties.
5. Возможно, этот документ: ссылка — Взгляните внизу, там находится расположение реестра.
Ответ №1:
Я не уверен в способе C #, но есть командлеты PowerShell, которые могут это сделать с помощью Set-NetAdapterAdvancedProperty. Однако я не уверен, какой API используется для внесения изменений.
Set-NetAdapterAdvancedProperty Ethernet -DisplayName "Large Send Offload V2 (IPv4)" -DisplayValue "Disabled" -NoRestart
Комментарии:
1. Я думаю , что c # поддерживает процессы командной строки через
Process.Invoke
или что-то подобное2. @DavidBenKnoble это так и есть. Вы также можете использовать System.Management. Автоматизация для вызова PowerShell непосредственно из C # и получения объектов. Ссылка