9.12.2022

Powershell ile Windows'da IPv6'yı devre dışı bırakmak

Grafik arayüzden yapmak da bir yöntem ama Powershell varken Powershell'den yapmak lazım.

Bilgisayardaki ağ adaptörleri ile ilişkilendirilen birkaç "bileşen" var, aşağıdaki resimde görülebileceği gibi.

Grafik arayüz yöntemi ile yukarıdaki "İnternet Protokolü Sürüm 6 (TCP/IPv6)" öğesinin solundaki seçimi kaldırmak yeterli. Bunu powershell ile yapmak için önce Get-NetAdapterBinding cmdlet'ini kullanabiliriz. Bunun sonucunda bilgisayardaki tüm ağ adaptörleri (kablolu, kablosuz, sanal, Docker, VPN vs.)  ile ilişkilendirilen bütün bileşenlerin listesi gelir. Bunların içinden sadece konumuz ile ilgili olarak IPv6'ları görmek için -ComponentID argumanı ile birlikte ms_tcpip6 kimliğini kullanmalıyız.

PS> Get-NetAdapterBinding -ComponentID ms_tcpip6

Bunun sonucunda da bütün ağ adaptörlerinin IPv6 eşleştirmesi gelir. Amacımız bütün ağ adaptörlerinin IPv6 bileşeni ilişkisini kesmekse doğrudan bu komutun çıktısını Disable-NetAdapterBinding cmdlet'ine gönderebiliriz.

PS> Get-NetAdapterBinding -ComponentID ms_tcpip6 | Disable-NetAdapterBinding

Ama amacımız sadece, örneğin kablolu bağlantının (diyelim ki Ethernet) ilişkisini kesmek ise 

PS> Get-NetAdapterBinding -ComponentID ms_tcpip6 -Name Ethernet | Disable-NetAdapterBinding

kullanabiliriz. Daha kısa olsun, diye Get-NetAdapterBinding'i atlayıp direk bağlantıyı kesen cmdlet olan Disable-NetAdapterBinding'i de kullanabiliriz.

PS>Disable-NetAdapterBinding -ComponentID ms_tcpip6 -Name Ethernet

ama önce Get-NetAdapterBinding kullanmak işlemi hangi adaptör ve bileşenler üzerinde yaptığımızdan emin olmamızı sağlar.

2023-01-13 Ek: Farkettim ki ağ arayüzündeki ilişkileri kaldırmak IPv6'yı tamamen devre dışı bırakmıyormuş. Tamamen devre dışı bırakmak için şurada (Microsoft Exchange CSSRhoderic Milne blog) yazıldığı gibi HKLM\System\CurrentControlSet\Services\Tcpipv6\Parameters altına DWord olarak DisabledComponents değerini oluşturmak ve değerini Hex olarak FF (veya onluk düzende 255) vermek gerek.

PS> New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" -Name "DisabledComponent" -Value 255 

Anahtarımız Local Machine olduğu için yukarıdaki satırı yaratmak için powershell terminalini yönetici yetkileriyle açmamız gerekecek. Ayrıca bu işlemlerden sonra bilgisayarı yeniden başlatmak da gerek.

Hiç yorum yok: