2024年2月28日水曜日

PowerShellでネットワークカテゴリを切り替えたいときの覚書

 

どうも皆様ぐーてんもるげん!
今回のネタはネットワークカテゴリの切替処理。
他端末の共有フォルダを見ようとしても見えない、Pingが通らないetcみたいなトラブルに見舞われることがあるんですが、大抵の場合、ネットワークの設定が「パブリックネットワーク」になってるんですよね。

基本的にWindows10以降であればGUIで簡単に変更することが出来るんですが、UACの設定を弄ってる場合など、このメニュー自体が出てこない事があります。
そういう場合、PowerShellで対応する方法があるんですが、しょっちゅうググるのが面倒になっちゃったので、自分のメモも兼ねて記事にして残しておくことにしました。

手順1.PowerShellを管理者権限で起動します。
起動したら「Get-NetConnectionProfile」と入力

管理者:Windows PowerShell ×
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6                        

PS C:\Users\hogehoge>
Get-NetConnectionProfile


手順2.現在アクティブなネットワークの情報が出てきます。
「InterfaceIndex」に出力された番号を控えておきます。
管理者:Windows PowerShell ×
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6                        

PS C:\Users\hogehoge>
Get-NetConnectionProfile

Name                     : ネットワーク
InterfaceAlias           : イーサネット
InterfaceIndex           : 26
NetworkCategory          : Public
DomainAuthenticationKind : None
IPv4Connectivity         : Internet
IPv6Connectivity         : NoTraffic
				


PS C:\Users\hogehoge>


手順3.下記コマンドを入力して設定変更を行います。
Get-NetConnectionProfile -InterfaceIndex 先程控えた番号を指定 | Set-NetConnectionProfile -NetworkCategory Private
重要なのは「InterfaceIndex」と「NetworkCategory」ですね。

InterfaceIndex:変更したいネットワークアダプタを番号指定します。
NetworkCategory:変更したいネットワークカテゴリを指定します。今回の例ではパブリックからプライベートに変更していますが、逆に本項目に「Public」と指定すればプライベートになっている設定をパブリックに切り換える事が出来ます。
管理者:Windows PowerShell ×
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6                        

PS C:\Users\hogehoge>
Get-NetConnectionProfile

Name                     : ネットワーク
InterfaceAlias           : イーサネット
InterfaceIndex           : 26
NetworkCategory          : Public
DomainAuthenticationKind : None
IPv4Connectivity         : Internet
IPv6Connectivity         : NoTraffic
				


PS C:\Users\hogehoge> Get-NetConnectionProfile -InterfaceIndex 26 | Set-NetConnectionProfile -NetworkCategory Private


手順4.特に表示は変化しませんが、これで設定変更されています。
管理者:Windows PowerShell ×
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6                        

PS C:\Users\hogehoge>
Get-NetConnectionProfile

Name                     : ネットワーク
InterfaceAlias           : イーサネット
InterfaceIndex           : 26
NetworkCategory          : Public
DomainAuthenticationKind : None
IPv4Connectivity         : Internet
IPv6Connectivity         : NoTraffic
				


PS C:\Users\hogehoge> Get-NetConnectionProfile -InterfaceIndex 26 | Set-NetConnectionProfile -NetworkCategory Private
PS C:\Users\hogehoge>


手順5.実行結果を確認する為、再度「Get-NetConnectionProfile 」を実行します。
管理者:Windows PowerShell ×
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6                        

PS C:\Users\hogehoge>
Get-NetConnectionProfile

Name                     : ネットワーク
InterfaceAlias           : イーサネット
InterfaceIndex           : 26
NetworkCategory          : Public
DomainAuthenticationKind : None
IPv4Connectivity         : Internet
IPv6Connectivity         : NoTraffic
				


PS C:\Users\hogehoge> Get-NetConnectionProfile


手順6.設定がパブリックからプライベートに切り替わったことが分かります。
管理者:Windows PowerShell ×
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6                        

PS C:\Users\hogehoge>
Get-NetConnectionProfile

Name                     : ネットワーク
InterfaceAlias           : イーサネット
InterfaceIndex           : 26
NetworkCategory          : Public
DomainAuthenticationKind : None
IPv4Connectivity         : Internet
IPv6Connectivity         : NoTraffic
				


PS C:\Users\hogehoge> Get-NetConnectionProfile -InterfaceIndex 26 | Set-NetConnectionProfile -NetworkCategory Private
PS C:\Users\hogehoge> Get-NetConnectionProfile

Name                     : ネットワーク
InterfaceAlias           : イーサネット
InterfaceIndex           : 26
NetworkCategory          : Private
DomainAuthenticationKind : None
IPv4Connectivity         : Internet
IPv6Connectivity         : NoTraffic
				


PS C:\Users\hogehoge>
以上になります。ちなみにIntercaceIndexは結構コロコロ変わるみたいで、一概に同じ番号とかではないみたいです。
くれぐれもコピペで実行される際は、十分ご注意下さいね。

ではまた!( ・ω・)ノ

0 件のコメント:

コメントを投稿