繁体   English   中英

没有在C#中托管Powershell的C#方法是否等效于所有PowerShell功能? (例如,重命名NetAdapter)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM