[英]Is there a C# method equivalent to all powershell functions without hosting powershell in C#? (e.g. Rename-NetAdapter)
我用Powershell怎么能写
Get-NetAdapter -Name "Adapter name" | Rename-NetAdapter -NewName "New name"
更改网络接口的名称,但是使用C#几乎不可能实现?
如果不运行powershell命令,是否可以通过编程方式访问powershell功能?
编辑 :
人们以某种方式将这个问题与网络问题混淆了。 这不是关于如何在C#中更改网络名称的问题,但是如果我可以以编程方式访问powershell功能,那么我就不必执行
Get-NetAdapter -Name "Adapter name" | Rename-NetAdapter -NewName "New name"
从C#中可以调用类似
SetName(adapter, "New name");
Powershell和.NET可以互操作。
可以从C#调用Powershell脚本和cmdlet。
同样,可以从Powershell调用.NET Framework组件和功能。
在您的情况下,更新网络适配器名称是Windows的核心功能,而Powershell和.NET都可以执行此操作,尽管看上去Powershell将该功能包装在一个漂亮的cmdlet中,但这种方法在.NET中执行此操作的难度更大。
一种方法是使用System.Diagnostics.Process
调出外部进程并对netsh
进行shell调用
netsh interface set interface name="Local Area Connection" newname="ExampleLan"
另一种方法是对NIC Guid使用注册表项更新,并直接修改注册表。 看到这个链接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.