3
4

2 に答える 2

4

netsh (MS が私たちを引き離そうとし、あきらめたツール)

WLAN インターフェース名を取得するには: netsh wlan show interfaces
      help states : show interfaces - システム上のワイヤレス LAN インターフェースのリストを表示します。
LAN インターフェース名を取得するには: netsh lan show interfaces
      help states : show interfaces - システム上の現在の有線インターフェースのリストを表示します。
すべてのインターフェースの名前を取得するには: netsh interface show interface
      help states : show interfaces - インターフェースを表示します。

LAN のコマンドには、通常は開始されていない Wired AutoConfig サービスが必要です。

このバッチ スクリプトは、サービスを開始し、(最後の) LAN インターフェイス名を取得し、それを新しい名前に変更し、Wired AutoConfig サービスを再度停止します。

sc.exe start dot3svc

for /f "tokens=1* delims=: " %%a in ('netsh lan show interfaces') do if %%a == Name set activeAdapter=%%b
echo %activeAdapter%
netsh interface set interface name="%activeAdapter%" newname="Ethernet"

sc.exe stop dot3svc

制限:

  • 有線インターフェイスが 1 つしかないことを前提としています
  • 開始時に実行されていたかどうかに関係なく、Wired AutoConfig サービスを停止します。

Wifi インターフェイスの場合、上記のスクリプト「lan」を「wlan」に変更し、sc.exe サービスの開始/停止の両方を削除します


パワーシェル

どのインターフェイスの名前を変更するかをより適切に制御するには、PowerShell を選択する方が簡単です。

これはおそらくほとんどの場合に機能します。
Get-NetAdapter | Where-Object { $_.HardwareInterface -eq $True -and $_.MediaType -eq "802.3" } | Rename-NetAdapter -NewName "Ethernet"

HardwareInterface仮想インターフェイスを排除します。たとえば、VMWare
MediaType 802.3は「有線」インターフェイスのみを表示し、Wifi、ブロードバンドなどは表示しません。

スクリプト ファイルでは、上記のバージョンのコマンドを使用します。省略形は次のようになります。
Get-NetAdapter | ? HardwareInterface | ? MediaType -eq "802.3" | Rename-NetAdapter "Ethernet"

目的のインターフェイスを選択する方法は他にもあります。選択できるすべてのパラメーターを確認します。
(Get-NetAdapter)[0] | Format-List -Property * -Force

例:
Realtek (Realtek ベンダー 10ec、Intel: 8086) によって作成されたものをすべてリストします。
Get-NetAdapter | ? ComponentID -like "PCI\VEN_10EC*"

仮想ではない:
Get-NetAdapter | ? Virtual -eq $false

コネクタの存在:
Get-NetAdapter | ? ConnectorPresent

次に、WMIオブジェクトがあります
Get-WmiObject -Class Win32_NetworkAdapterConfiguration


レジストリ

ネットワーク アダプタ カードを変更し、新しいカードがEthernet 2などの名前を使用していて、その名前を「Ethernet」に戻したい場合、次のようなエラーが表示されます。

"You were not connected because a duplicate name exists on the network. If joining a domain, go to System in Control Panel to change the computer name and try again. If joining a workgroup, choose another workgroup name."

もちろん、これはコンピュータの名前変更に関する誤ったエラー メッセージです。
PowerShell は正しく言うでしょう:An attempt was made to create an object and the object name already existed.

しかしControl Panel\Network and Internet\Network Connections、そこに行ってインターフェースの名前を変更しようとしても役に立ちません。

このような場合の唯一のオプションは、これらのレジストリ パスで対応するキーを見つけることです。

HKEY_LOCAL_MACHINE\SYSTEM\Setup\Upgrade\NetworkDriverBackup\Control\Network\{4d36e972-e325-11ce-bfc1-08002be10318}\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\
HKEY_LOCAL_MACHINE\SYSTEM\Setup\Upgrade\NetworkDriverBackup\Control\NetworkSetup2\Interfaces\

古いインターフェイスのキーを削除し (上記のパス全体ではありません!)、再起動します。
cmd バッチ、PS、またはコントロール パネルでの名前変更が機能するようになりました。

于 2016-02-14T18:41:26.710 に答える
0

サーバーの新しさに応じて、Powershell を使用して多くのことを実行できます。詳細については、Google の「Get-WmiObject -Class Win32_NetworkAdapterConfiguration」を参照してください。

于 2013-01-14T12:07:18.537 に答える