cmd.exe でデフォルトの Windows ネットワーク名文字列を取得する

cmd.exe でデフォルトの Windows ネットワーク名文字列を取得する

Windows は、接続されているネットワークを自動的に識別し、 またはドメインに参加しているシステムの場合は という名前を付けますWireless Network。WindowsWired Network 2windows.domain.tld検出した接続ネットワークの文字列を取得するコマンドはありますか?

アップデート

@Bob の回答を試した後、出力には接続されているすべてのネットワークの行がリストされていることに気付きました。

> Get-NetConnectionProfle | Select-Object -ExpandProperty Name
Wired Connection
Wireless Connection 3
VPN Name

デフォルトでは、Windows は、ワイヤレスが接続されている場合でも有線接続のみ、接続されている場合も VPN のみなど、すべてのトラフィックに対して接続されているネットワークの 1 つだけを使用します。既定のネットワークの名前文字列のみを取得するにはどうすればよいですか?

答え1

デフォルト インターフェイスを見つけるには、メトリックが最も低いデフォルト ルートを見つける必要があります。これは、次の PowerShell コードで実行できます。

$DefaultIPv4InterfaceIndex=
Get-NetRoute -DestinationPrefix 0.0.0.0/0|
Sort-Object {$_.RouteMetric+(Get-NetIPInterface -AssociatedRoute $_).InterfaceMetric}|
Select-Object -First 1 -ExpandProperty InterfaceIndex

$DefaultIPv6InterfaceIndex=
Get-NetRoute -DestinationPrefix ::/0|
Sort-Object {$_.RouteMetric+(Get-NetIPInterface -AssociatedRoute $_).InterfaceMetric}|
Select-Object -First 1 -ExpandProperty InterfaceIndex

IPv4 と IPv6 のデフォルト インターフェースは異なる場合があることに注意してください。インターフェース インデックスがわかったので、次のコマンドを使用してGet-NetConnectionProfileネットワーク名を取得できます。

(Get-NetConnectionProfile -InterfaceIndex $DefaultIPv4InterfaceIndex).Name
(Get-NetConnectionProfile -InterfaceIndex $DefaultIPv6InterfaceIndex).Name

答え2

PowerShellを使用できる場合は、Windows Server 2012 R2/Windows 8.1以降では、Get-NetConnectionProfileコマンドレットを使用すると、次のようにしてネットワーク名だけを抽出できます。

Get-NetConnectionProfile | Select-Object -ExpandProperty Name

PowerShell 4.0 (をインストールすることで、以前のバージョンのWindowsでもこれを実行できます。Windows 管理フレームワーク 4.0)。

これを PowerShell に渡すことで、従来のコマンド プロンプトから実行できますpowershell -c

レジストリ キーに直接アクセスすることもできますが、どのキーが現在のものであるかをどのように判断するかはわかりません。Windows 8 でネットワークの名前を変更するにはどうすればよいですか?

答え3

に行くとControlpanel > Network & Internet > Network & Sharing center表示されますactive networks

から移動してネットワーク カードをNetwork & Sharing centerクリックすることもできます。関連するステータスを持つすべてのネットワークが表示されます。Edit Settings

注意: 設定名はデンマーク語の PC では誤って翻訳されている可能性があります。

関連情報