﻿---SRV\S19 VEYA OZDE,14500 PORTU AÇMAK İÇİN POWERSHELLDE YÖNETİCİ 
--OLARAK ÇALIŞTIR
---not  :bundan sonrasını çalıştır..
# ================================================================
# SQL Server 2019 Network Access Script
# Sunucu: SRV\S19
# Port: 14500
# ================================================================

$InstanceName = "S19"
$TcpPort = 14500

Write-Host "=== SQL Server ağ erişimi ayarlanıyor... ==="

# 1?? SQL Server TCP/IP protokolünü etkinleştir
Write-Host "TCP/IP etkinleştiriliyor..."
$wmi = Get-WmiObject -namespace "root\Microsoft\SqlServer\ComputerManagement15" -class "ServerNetworkProtocol"
$tcp = $wmi | Where-Object { $_.InstanceName -eq $InstanceName -and $_.ProtocolName -eq "Tcp" }
if ($tcp -ne $null) {
    $tcp.SetEnable() | Out-Null
}

# 2?? Sabit TCP Portu 14500 olarak ayarla
Write-Host "TCP Portu ayarlanıyor ($TcpPort)..."
$ipAll = Get-WmiObject -namespace "root\Microsoft\SqlServer\ComputerManagement15" -class "ServerNetworkProtocolProperty" |
         Where-Object { $_.InstanceName -eq $InstanceName -and $_.PropertyName -eq "TcpPort" }
$ipAll.SetStringValue("$TcpPort") | Out-Null

# 3?? SQL Browser hizmetini otomatik başlat
Write-Host "SQL Browser etkinleştiriliyor..."
Set-Service -Name "SQLBrowser" -StartupType Automatic
Start-Service -Name "SQLBrowser"

# 4?? SQL Server hizmetini yeniden başlat
$svcName = "MSSQL`$$InstanceName"   # örnek: MSSQL$S19
Write-Host "SQL Server ($svcName) yeniden başlatılıyor..."
Restart-Service -Name $svcName -Force

# 5?? Windows Güvenlik Duvarı kuralı oluştur
Write-Host "Güvenlik duvarı kuralı ekleniyor..."
# TCP 14500
if (-not (Get-NetFirewallRule -DisplayName "SQLServer_TCP_$TcpPort" -ErrorAction SilentlyContinue)) {
    New-NetFirewallRule -DisplayName "SQLServer_TCP_$TcpPort" -Direction Inbound -Action Allow -Protocol TCP -LocalPort $TcpPort
}
# UDP 1434
if (-not (Get-NetFirewallRule -DisplayName "SQLBrowser_UDP_1434" -ErrorAction SilentlyContinue)) {
    New-NetFirewallRule -DisplayName "SQLBrowser_UDP_1434" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 1434
}

# 6?? Uzaktan bağlantılara izin ver
Write-Host "Uzaktan bağlantı ayarı güncelleniyor..."
Invoke-Sqlcmd -Query "EXEC sp_configure 'remote access', 1; RECONFIGURE;" -ServerInstance "localhost\$InstanceName"

Write-Host "=== İşlem tamamlandı. SQL Server ağına açıldı. ==="
Write-Host "Diğer makinelerden şu şekilde bağlanabilirsin:"
Write-Host "  -> SRV,$TcpPort  veya  SRV\$InstanceName"


--  Buraya kadar çalıştır.
--  ping OZDE → IP erişimi var mı kontrol et.       
--  telnet OZDE 14500 → port açık mı test et.