PowerShell ile Windows Ağ (Network) Yönetimi



Hedef Kitle: Sistem Yöneticileri, Siber Güvenlik Uzmanları, Ağ Yöneticileri, BT Öğretmenleri, Öğrenciler


İçindekiler

  1. Windows Ağ Mimarisi

  2. PowerShell ve Ağ Yönetimi

  3. Ağ Bağdaştırıcılarını Yönetme

  4. IP Yapılandırması

  5. DNS Yönetimi

  6. DHCP Yönetimi

  7. Gateway Yönetimi

  8. Ağ Profilleri

  9. Ağ Paylaşımları

  10. TCP/UDP Bağlantıları

  11. Port Yönetimi

  12. Firewall ile Ağ Yönetimi

  13. Ağ Tanılama

  14. Route (Yönlendirme)

  15. VPN Yönetimi

  16. Proxy Ayarları

  17. IPv6 Yönetimi

  18. Hyper-V Sanal Ağları

  19. Ağ Performans Analizi

  20. Güvenlik Açısından Ağ Yönetimi

  21. Gerçek Sistem Yönetimi Senaryoları


1. Windows Ağ Mimarisi

Windows ağ sistemi birçok bileşenden oluşur.

Uygulama
Winsock
TCP / UDP
IPv4 / IPv6
Ethernet / WiFi
Network Adapter
Fiziksel Ağ

PowerShell bu katmanların büyük bölümünü yönetebilir.


Ağ Modülleri

Get-Module NetTCPIP
Get-Module NetAdapter
Get-Module DnsClient
Get-Module NetSecurity

Yüklü ağ komutları:

Get-Command -Module NetTCPIP

200'den fazla ağ komutu listelenebilir.


2. Ağ Bağdaştırıcılarını Yönetme

Tüm Adaptörleri Listeleme

Get-NetAdapter

Örnek çıktı

Ethernet
Wi-Fi
Bluetooth Network
vEthernet

Ayrıntılı Bilgi

Get-NetAdapter | Format-List *

Gösterilen bilgiler

  • MAC Address

  • Link Speed

  • Driver

  • Status

  • Interface Index

  • MTU

  • VLAN


Sadece Aktif Adaptörler

Get-NetAdapter | Where Status -eq Up

Adaptörü Devre Dışı Bırakma

Disable-NetAdapter -Name "Ethernet"

Yeniden Etkinleştirme

Enable-NetAdapter -Name "Ethernet"

Adaptörü Yeniden Başlatma

Restart-NetAdapter -Name Ethernet

3. IP Yapılandırması

Mevcut IP

Get-NetIPAddress

IPv4

Get-NetIPAddress -AddressFamily IPv4

IPv6

Get-NetIPAddress -AddressFamily IPv6

Statik IP Atama

New-NetIPAddress `
-InterfaceAlias Ethernet `
-IPAddress 192.168.1.100 `
-PrefixLength 24 `
-DefaultGateway 192.168.1.1

IP Silme

Remove-NetIPAddress `
-IPAddress 192.168.1.100

DHCP'ye Geri Dönme

Set-NetIPInterface `
-InterfaceAlias Ethernet `
-Dhcp Enabled

4. DNS Yönetimi

DNS Sunucularını Görüntüleme

Get-DnsClientServerAddress

DNS Değiştirme

Set-DnsClientServerAddress `
-InterfaceAlias Ethernet `
-ServerAddresses (
"8.8.8.8",
"1.1.1.1"
)

DHCP DNS

Set-DnsClientServerAddress `
-ResetServerAddresses

DNS Cache

Get-DnsClientCache

Cache Temizleme

Clear-DnsClientCache

5. DHCP Yönetimi

DHCP Durumu

Get-NetIPInterface

DHCP Aç

Set-NetIPInterface `
-Dhcp Enabled

DHCP Yenile

ipconfig /renew

PowerShell'den:

Invoke-Expression "ipconfig /renew"

6. Varsayılan Ağ Geçidi (Gateway)

Gateway Görüntüleme

Get-NetRoute -DestinationPrefix 0.0.0.0/0

Yeni Gateway

New-NetRoute `
-DestinationPrefix 0.0.0.0/0 `
-NextHop 192.168.1.1 `
-InterfaceAlias Ethernet

7. Ağ Profilleri

Mevcut Profil

Get-NetConnectionProfile

Örnek

Public
Private
Domain

Private Yap

Set-NetConnectionProfile `
-NetworkCategory Private

8. SMB Ağ Paylaşımları

Paylaşımlar

Get-SmbShare

Yeni Paylaşım

New-SmbShare `
-Name Ortak `
-Path D:\Ortak

Silme

Remove-SmbShare `
-Name Ortak

9. TCP Bağlantıları

Tüm Bağlantılar

Get-NetTCPConnection

Dinleyen Portlar

Get-NetTCPConnection `
-State Listen

Belirli Port

Get-NetTCPConnection `
-LocalPort 443

10. UDP

Get-NetUDPEndpoint

11. Port Kontrolü

Test-NetConnection google.com -Port 443

Sonuç

TcpTestSucceeded : True

12. Ping

Test-Connection 8.8.8.8

Sürekli Ping

Test-Connection google.com -Count 20

13. Traceroute

Test-NetConnection `
-TraceRoute `
google.com

14. Route Tablosu

Get-NetRoute

Belirli Route

Get-NetRoute `
-DestinationPrefix 192.168.0.0/24

15. ARP Tablosu

Get-NetNeighbor

MAC Adresi

Get-NetNeighbor `
| Select IPAddress,LinkLayerAddress

16. Hyper-V Ağları

Virtual Switch

Get-VMSwitch

Yeni Switch

New-VMSwitch `
-Name LAB `
-NetAdapterName Ethernet

17. Ağ İstatistikleri

Get-NetAdapterStatistics

Gösterir

  • Gönderilen Paket

  • Alınan Paket

  • CRC Hatası

  • Drop

  • Broadcast

  • Multicast


18. MTU

Göster

Get-NetIPInterface

Değiştir

Set-NetIPInterface `
-NlMtuBytes 1500

19. VLAN

Get-NetAdapterAdvancedProperty

20. Güvenlik

SMB Sürümü

Get-SmbServerConfiguration

SMBv1

Get-WindowsOptionalFeature `
-Online `
-FeatureName SMB1Protocol

LLMNR

Get-ItemProperty `
HKLM:\Software\Policies\Microsoft\Windows NT\DNSClient

NetBIOS

Get-WmiObject `
Win32_NetworkAdapterConfiguration

21. Ağ Tanılama

DNS

Resolve-DnsName microsoft.com

Port Testi

Test-NetConnection 192.168.1.10 -Port 3389

HTTP Testi

Invoke-WebRequest https://example.com

NIC Bilgisi

Get-NetAdapterHardwareInfo

Bağlantı Hızı

Get-NetAdapter | Select Name,LinkSpeed

22. Ağ Performansı İzleme

Aktif TCP bağlantıları:

Get-NetTCPConnection |
Group-Object State

En fazla bağlantı kuran uzak IP adresleri:

Get-NetTCPConnection |
Group-Object RemoteAddress |
Sort-Object Count -Descending |
Select-Object -First 10

Bağdaştırıcı istatistiklerini düzenli izleme:

while ($true) {
Clear-Host
Get-NetAdapterStatistics |
Select-Object Name,ReceivedBytes,SentBytes
Start-Sleep -Seconds 2
}

23. Siber Güvenlik Açısından En İyi Uygulamalar

  • SMBv1'i devre dışı bırakın.

  • Kullanılmayan ağ bağdaştırıcılarını kapatın.

  • Ağ profilini doğru yapılandırın (Etki Alanı/Özel/Genel).

  • Gereksiz açık portları düzenli olarak kontrol edin.

  • DNS önbelleğini şüpheli durumlarda temizleyin.

  • Yalnızca güvenilir DNS sunucularını kullanın.

  • Ağ trafiğini Windows Güvenlik Duvarı günlükleriyle izleyin.

  • PowerShell Remoting için HTTPS veya güvenilir yönetim ağlarını tercih edin.

  • Düzenli olarak Get-NetTCPConnection ve Get-NetNeighbor çıktılarıyla anormal bağlantıları inceleyin.


24. Gerçek Sistem Yönetimi Senaryoları

Senaryo 1: Statik IP Atama

New-NetIPAddress `
-InterfaceAlias "Ethernet" `
-IPAddress "10.10.10.50" `
-PrefixLength 24 `
-DefaultGateway "10.10.10.1"
Set-DnsClientServerAddress `
-InterfaceAlias "Ethernet" `
-ServerAddresses "10.10.10.10","1.1.1.1"

Senaryo 2: RDP Hizmetini Test Etme

Test-NetConnection 192.168.10.20 -Port 3389

Senaryo 3: Dinleyen Portları Listeleme

Get-NetTCPConnection -State Listen |
Sort-Object LocalPort

Senaryo 4: Ağ Profilini Değiştirme

Get-NetConnectionProfile |
Set-NetConnectionProfile -NetworkCategory Private

Senaryo 5: En Fazla Uzak Bağlantıya Sahip IP'leri Bulma

Get-NetTCPConnection |
Where-Object RemoteAddress -notin @("::","0.0.0.0") |
Group-Object RemoteAddress |
Sort-Object Count -Descending |
Select-Object -First 10 Name,Count

Sonuç

PowerShell, Windows ağ yönetimi için grafik arayüzün çok ötesinde bir kontrol sunar. Tek bir komutla ağ bağdaştırıcılarını yönetebilir, IP ve DNS yapılandırmasını değiştirebilir, bağlantıları analiz edebilir, yönlendirme tablolarını düzenleyebilir, ağ performansını izleyebilir ve güvenlik kontrolleri gerçekleştirebilirsiniz. Modern Windows Server ve Windows 10/11 sistem yöneticileri için NetTCPIP, NetAdapter, DnsClient, NetSecurity ve SmbShare modüllerine hakim olmak; otomasyon, güvenlik ve hızlı sorun giderme açısından önemli bir yetkinlik sağlar.


PowerShell, Windows Server ve istemci (client) işletim sistemlerinde ağ yapılandırmasını yönetmek ve sorun gidermek için geleneksel Komut İstemine (CMD) kıyasla çok daha güçlü, esnek ve nesne tabanlı bir ortam sunar. Eski dostlarımız olan ipconfig, ping, tracert ve netstat gibi komutların yerini alan modern PowerShell cmdlet'leri, özellikle otomasyon betikleri yazarken hayat kurtarır.

Bu eğitim makalesinde, Windows ağ yönetiminde en çok kullanılan PowerShell komutlarını ve kullanım senaryolarını adım adım inceleyeceğiz.

Önemli Not: Ağ yapılandırmasını değiştiren (Set, New, Disable vb.) komutların çalışabilmesi için PowerShell'i mutlaka Yönetici Olarak Çalıştır (Run as Administrator) seçeneğiyle açmalısınız.

1. Ağ Bağdaştırıcılarını (Kayıtlı Cihazları) Yönetmek

Ağ yönetimine başlarken ilk bilmeniz gereken şey, sistemdeki fiziksel ve sanal ağ kartlarının (NIC) durumudur. Bu işlemler için NetAdapter modülünü kullanırız.

Bağdaştırıcıları Listelemek

Sistemdeki tüm ağ kartlarını, hızlarını, MAC adreslerini ve durumlarını (Up/Disconnected) görmek için kullanılır:

PowerShell
Get-NetAdapter

Sadece aktif olan (bağlı) ağ kartlarını listelemek isterseniz, nesne tabanlı filtreleme yapabilirsiniz:

PowerShell
Get-NetAdapter | Where-Object Status -eq "Up"

Bağdaştırıcıyı Kapatıp Açmak

Bir ağ kartını devre dışı bırakmak veya yeniden başlatmak (özellikle sorun giderme sırasında) çok yaygındır. Bu işlemlerde kartın adını (Name) veya indeks numarasını (InterfaceIndex) kullanabilirsiniz.

PowerShell
# Ağ kartını devre dışı bırakmak (Onay istememesi için -Confirm:$false eklenebilir)
Disable-NetAdapter -Name "Ethernet"

# Ağ kartını etkinleştirmek
Enable-NetAdapter -Name "Ethernet"

# Ağ kartını yeniden başlatmak (Kapatıp açmak)
Restart-NetAdapter -Name "Ethernet"

2. IP ve DNS Yapılandırması (Eski ipconfig)

Eskiden IP detaylarını görmek için ipconfig /all kullanırdık. PowerShell'in NetTCPIP modülü bu işi çok daha detaylı bir seviyeye taşır.

Mevcut IP Adreslerini Görmek

Bilgisayarınızdaki IPv4 adreslerini listelemek için:

PowerShell
Get-NetIPAddress -AddressFamily IPv4

Bu komut oldukça fazla bilgi döndürür. Sadece işinize yarayan kısımları (IP adresi, arayüz adı ve alt ağ maskesi) görmek için tablo formatında (Format-Table) biçimlendirebilirsiniz:

PowerShell
Get-NetIPAddress -AddressFamily IPv4 | Format-Table InterfaceAlias, IPAddress, PrefixLength

Statik IP Adresi Atamak

Bir ağ kartına manuel olarak IP adresi, Alt Ağ Maskesi (PrefixLength olarak ifade edilir; örn: 255.255.255.0 için 24) ve Varsayılan Ağ Geçidi (Gateway) atamak için New-NetIPAddress kullanılır.

PowerShell
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress "192.168.1.50" -PrefixLength 24 -DefaultGateway "192.168.1.1"

(Eğer arayüzde zaten bir IP varsa ve değiştirmek istiyorsanız Set-NetIPAddress kullanmalısınız.)

DNS Sunucularını Ayarlamak

Manuel IP atadıktan sonra internete çıkabilmek için DNS sunucularını da belirlemeniz gerekir.

PowerShell
# Google ve Cloudflare DNS'lerini birincil ve ikincil olarak ayarlama
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses ("8.8.8.8", "1.1.1.1")

DHCP'ye Geri Dönmek (Otomatik IP Alma)

Eğer statik IP'den vazgeçip tekrar DHCP üzerinden otomatik IP almak isterseniz, hem IP'yi hem de DNS'i sıfırlamanız gerekir:

PowerShell
# IP adresini DHCP'ye çekmek
Set-NetIPInterface -InterfaceAlias "Ethernet" -Dhcp Enabled

# DNS ayarlarını DHCP'ye bırakmak
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ResetServerAddresses

3. Ağ Teşhisi ve Sorun Giderme

Sorun giderme aşamasında PowerShell'in sunduğu teşhis araçları, eski komut istemi araçlarından çok daha yeteneklidir.

Test-NetConnection (Ping ve Telnet'in Birleşimi)

PowerShell'in en sevilen ağ komutlarından biridir. Sadece ping atmakla kalmaz, aynı zamanda belirli bir portun açık olup olmadığını da test edebilir. ping ve telnet ihtiyacını tek komutta çözer.

PowerShell

# Basit Ping testi
Test-NetConnection -ComputerName "google.com"

# Belirli bir porta (Örn: RDP portu 3389) bağlantı testi
Test-NetConnection -ComputerName "192.168.1.20" -Port 3389

# Tracert (Yönlendirme izleme) yapmak için
Test-NetConnection -ComputerName "google.com" -TraceRoute

Resolve-DnsName (nslookup'ın Alternatifi)

Bir alan adının (domain) IP adreslerini (A, AAAA, MX, TXT kayıtları) çözümlemek için kullanılır.

PowerShell

Resolve-DnsName -Name "microsoft.com" -Type A

Get-NetTCPConnection (netstat Alternatifi)

Bilgisayarınızdaki mevcut ağ bağlantılarını, dinlenen (Listening) portları ve kurulan (Established) oturumları görmek için kullanılır.

PowerShell

# Sadece kurulan (bağlanmış) oturumları listele
Get-NetTCPConnection -State Established

# Hangi işlemin (Process) hangi portu kullandığını bulmak için
Get-NetTCPConnection -LocalPort 443

4. Gelişmiş Yönlendirme (Routing)

Özellikle birden fazla ağ kartı olan cihazlarda, trafiğin hangi ağ geçidinden gideceğini bilmek önemlidir.

Yönlendirme Tablosunu Görmek (route print Alternatifi)

Sistemdeki mevcut IPv4 yönlendirme tablosunu görmek için:

PowerShell

Get-NetRoute -AddressFamily IPv4

İpucu: PowerShell komutları nesne döndürdüğü için bu komutların sonuna | Export-Csv -Path "C:\rapor.csv" ekleyerek ağ dökümünüzü tek satırda Excel uyumlu bir rapora dönüştürebilirsiniz.

Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu