Arama Yap Mesaj Gönder
Biz Sizi Arayalım
+90
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Almanya (German)Almanya (German) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Almanya (German)Almanya (German) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro

Bize Ulaşın

Konum Halkalı merkez mahallesi fatih cd ozgur apt no 46 , Küçükçekmece , İstanbul , 34303 , TR
Toplu domain otomasyonu

Windows Server IIS'e PowerShell ile yüzlerce domain, site ve binding ekleyin

IIS'te domain ekleme; site, fiziksel yol, application pool ve host header binding bileşenlerinin birlikte oluşturulmasını gerektirir. Hazır PowerShell betiği her domain için izole havuz, klasör, www binding ve CSV sonuç kaydı üretir.

Windows Server 2025 IIS 10 PowerShell New-Website Bindings Application Pool
root@eka-server
Import-Module WebAdministration
New-WebAppPool -Name "eka-ornek.com"
New-Website -Name "eka-ornek.com" -Port 80 -IPAddress "*" -HostHeader "ornek.com" -PhysicalPath "C:\inetpub\siteler\ornek.com" -ApplicationPool "eka-ornek.com"
New-WebBinding -Name "eka-ornek.com" -Protocol http -Port 80 -HostHeader "www.ornek.com"
100+Site ve host binding
PoolDomain başına izolasyon
NTFSKontrollü dosya izinleri
PSPowerShell otomasyonu
01
Mimari kararı

Yüzlerce domaini eklemeden önce doğru barındırma modelini seçin

Toplu otomasyon yanlış mimariyi hızlandırmamalıdır. Müşteri izolasyonu, kaynak limiti, uygulama kökü, mail ve DNS sahipliği kararlarını önce verin.

01

Her domain ayrı IIS site

Farklı uygulama havuzu, kök dizin, log ve runtime ayarı gereken domainler için en açık modeldir.

02

Tek siteye çok binding

Aynı uygulamayı açan alias domainlerde tek siteye ek host header binding eklemek daha az kaynak kullanır.

03

Paylaşılan veya ayrı app pool

Aynı güven sınırındaki düşük trafikli siteler pool paylaşabilir; farklı müşteriler için ayrı kimlik ve pool önerilir.

04

SNI tabanlı HTTPS

Aynı IP üzerinde çok sayıda HTTPS site için host name ve SNI binding planını sertifika otomasyonundan önce belirleyin.

02
Ön hazırlık

Toplu işlem başlamadan önce tamamlanması gerekenler

Windows Server 2019, 2022 veya 2025 ve kurulu IIS rolü01
Yönetici olarak PowerShell oturumu02
WebAdministration veya IISAdministration modülü03
C:\Eka\domainler.txt içinde satır başına bir domain04
C:\inetpub\siteler için yeterli NTFS alanı ve yedek05
80/443 firewall, DNS ve sertifika yönetim planı06
03
Uygulama sırası

Kesintisiz ve geri alınabilir toplu ekleme akışı

01

IIS rolünü ve modülü doğrulayın

Web-Server rolü, yönetim araçları ve PowerShell cmdlet'lerinin yüklü olduğunu doğrulayın.

Get-WindowsFeature Web-Server,Web-Mgmt-Tools
Get-Module -ListAvailable WebAdministration,IISAdministration
02

Mevcut site ve binding envanterini alın

Aynı site adı, host header veya port çakışmasını işlemden önce tespit edin.

Import-Module WebAdministration
Get-Website
Get-WebBinding
03

İki domainle ön test yapın

NTFS izinlerini, application pool başlatmayı ve binding eşleşmesini doğrulayın.

Get-Content C:\Eka\domainler.txt -TotalCount 2 | Set-Content C:\Eka\domainler-test.txt
04

PowerShell execution policy yerine imza planlayın

Üretimde ExecutionPolicy'yi kalıcı olarak Bypass yapmak yerine betiği imzalayın veya tek süreç kapsamı kullanın.

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
05

Toplu betiği yönetici olarak çalıştırın

Site, pool, klasör ve binding oluşturma sonuçları CSV'ye kaydedilir.

PowerShell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Eka\iis-toplu-domain.ps1
06

IIS yapılandırmasını ve HTTP yanıtını doğrulayın

Get-Website, Get-WebBinding ve yerel Host header isteğiyle sonucu test edin.

Get-Website | Select Name,State,PhysicalPath
Invoke-WebRequest -Uri http://127.0.0.1 -Headers @{Host="ornek.com"} -UseBasicParsing
04
SSH, CLI ve API

Kopyalanabilir komutlar ve tam otomasyon betiği

01

Tam IIS PowerShell betiği

Her domain için site, app pool, klasör, www binding, NTFS izni ve CSV kaydı oluşturur.

$HataEylemi = "Stop"
$DomainDosyasi = "C:\Eka\domainler.txt"
$WebKoku = "C:\inetpub\siteler"
$SonucDosyasi = "C:\Eka\iis-domain-sonuclari.csv"
$HataDosyasi = "C:\Eka\iis-domain-hatalari.log"

$ErrorActionPreference = $HataEylemi
Import-Module WebAdministration

New-Item -ItemType Directory -Path (Split-Path $SonucDosyasi) -Force | Out-Null
New-Item -ItemType Directory -Path $WebKoku -Force | Out-Null
"domain,durum,site,uygulama_havuzu,fiziksel_yol" | Set-Content -Path $SonucDosyasi -Encoding UTF8
"" | Set-Content -Path $HataDosyasi -Encoding UTF8

Get-Content $DomainDosyasi | ForEach-Object {
    $Domain = $_.Trim().ToLowerInvariant()
    $Domain = $Domain -replace '^https?://','' -replace '^www\.','' -replace '/.*$',''

    if ([string]::IsNullOrWhiteSpace($Domain)) {
        return
    }

    if ($Domain -notmatch '^[a-z0-9][a-z0-9.-]*\.[a-z]{2,63}$') {
        "$Domain,gecersiz,,," | Add-Content -Path $SonucDosyasi -Encoding UTF8
        return
    }

    $SiteAdi = "eka-$Domain"
    $HavuzAdi = "eka-$Domain"
    $FizikselYol = Join-Path $WebKoku $Domain

    try {
        New-Item -ItemType Directory -Path $FizikselYol -Force | Out-Null
        "<!doctype html><html lang=`"tr`"><meta charset=`"utf-8`"><title>$Domain</title><h1>$Domain hazır</h1></html>" | Set-Content -Path (Join-Path $FizikselYol "index.html") -Encoding UTF8

        if (-not (Test-Path "IIS:\AppPools\$HavuzAdi")) {
            New-WebAppPool -Name $HavuzAdi | Out-Null
        }

        if (-not (Test-Path "IIS:\Sites\$SiteAdi")) {
            New-Website -Name $SiteAdi -Port 80 -IPAddress "*" -HostHeader $Domain -PhysicalPath $FizikselYol -ApplicationPool $HavuzAdi | Out-Null
            New-WebBinding -Name $SiteAdi -Protocol http -Port 80 -IPAddress "*" -HostHeader "www.$Domain" | Out-Null
        }

        & icacls $FizikselYol /grant "IIS_IUSRS:(OI)(CI)(RX)" /T /C | Out-Null
        "$Domain,basarili,$SiteAdi,$HavuzAdi,$FizikselYol" | Add-Content -Path $SonucDosyasi -Encoding UTF8
    }
    catch {
        "$Domain | $($_.Exception.Message)" | Add-Content -Path $HataDosyasi -Encoding UTF8
        "$Domain,hatali,$SiteAdi,$HavuzAdi,$FizikselYol" | Add-Content -Path $SonucDosyasi -Encoding UTF8
    }
}

Get-Website | Select-Object Name,State,PhysicalPath,Bindings
Write-Host "Tamamlandı: $SonucDosyasi"
Write-Host "Hatalar: $HataDosyasi"
02

Tek siteye alias binding ekleme

Aynı uygulamayı gösteren domainler için yeni IIS site yerine binding ekleyin.

New-WebBinding -Name "AnaSite" -Protocol http -Port 80 -IPAddress "*" -HostHeader "alias-domain.com"
New-WebBinding -Name "AnaSite" -Protocol http -Port 80 -IPAddress "*" -HostHeader "www.alias-domain.com"
03

IISConfiguration modülü alternatifi

Yeni modülü kullanan sistemlerde New-IISSite bindingInformation ile site oluşturabilir.

Import-Module IISAdministration
New-IISSite -Name "eka-ornek.com" -PhysicalPath "C:\inetpub\siteler\ornek.com" -BindingInformation "*:80:ornek.com"
04

Toplu binding çakışma kontrolü

Aynı protocol, IP, port ve host kombinasyonlarını listeleyin.

Get-WebBinding | ForEach-Object { [PSCustomObject]@{ Site=$_.ItemXPath; Protocol=$_.protocol; Binding=$_.bindingInformation } } | Group-Object Protocol,Binding | Where-Object Count -gt 1
05
İşletim sistemi ve stack

Dağıtıma ve web sunucusuna göre değişen noktalar

Windows Server 2019

WebAdministration modülü yaygın ve kararlıdır. TLS sürümleri, .NET hosting bundle ve URL Rewrite bileşenlerini uygulamaya göre kontrol edin.

  • Get-WindowsFeature Web-Server
  • Get-Module WebAdministration -ListAvailable
  • iisreset /status

Windows Server 2022

SNI, modern TLS ve güncel .NET hosting için uygun üretim seçeneğidir. Windows Update sonrası app pool davranışını izleyin.

  • Get-ComputerInfo | Select WindowsProductName,WindowsVersion
  • Get-WebAppPoolState -Name *
  • Get-TlsCipherSuite | Select-Object -First 10

Windows Server 2025

WebAdministration ve IISAdministration cmdlet'lerini kurulu rol sürümünüze göre kullanın; otomasyonu staging üzerinde test edin.

  • Get-WindowsFeature Web-Server,Web-Mgmt-Tools
  • Get-Command New-Website,New-IISSite -ErrorAction SilentlyContinue
  • Get-IISSite 2>$null
06
Hata çözümü

Toplu domain eklerken karşılaşılan yaygın hatalar

5 kayıt
Hata mesajı

Cannot create a file when that file already exists

Aynı IIS site adı, binding veya fiziksel yol daha önce oluşturulmuş olabilir.

Hata mesajı

Cannot find path IIS:\

WebAdministration modülü yüklenmemiş veya PowerShell yönetici olarak açılmamış olabilir.

Hata mesajı

HTTP Error 500.19

web.config sözdizimi, kilitli section, eksik modül veya NTFS erişimi sorunlu olabilir.

Hata mesajı

503 Service Unavailable

Application pool durmuş, Rapid-Fail Protection tetiklenmiş veya runtime yüklenememiş olabilir.

Hata mesajı

Binding conflict

Aynı IP:port:host kombinasyonu başka sitede bulunabilir veya boş host header çakışabilir.

Aramayla eşleşen hata bulunamadı.

Güvenlik ve operasyon riskleri

Bunları yapmadan üretime geçmeyin

  • İlk çalıştırmayı 2 test domainiyle yapın; tüm domain listesini doğrudan üretime aktarmayın.
  • Domain listesini HTTPS, www ve yol içermeyen yalın alan adlarıyla hazırlayın.
  • İşlem öncesi panel yapılandırması, DNS bölgeleri ve web sunucusu dosyalarının yedeğini alın.
  • API anahtarı, root parolası ve oluşturulan kullanıcı parolalarını web kökünde saklamayın.
  • DNS yayılımı tamamlanmadan toplu SSL isteği göndermek hız sınırına ve başarısız doğrulamaya yol açabilir.
Doğrulama listesi

İşlemin başarılı sayılması için

  • Domainler panel veya web sunucusu listesinde görünüyor.
  • Her domain doğru document root klasörüne bağlanıyor.
  • HTTP isteği beklenen durum kodunu döndürüyor.
  • DNS A/AAAA kayıtları doğru sunucu IP adresini gösteriyor.
  • Başarısız kayıtlar ayrı log dosyasına yazılıyor ve tekrar çalıştırılabiliyor.
  • SSL yalnızca DNS doğrulaması başarılı domainlerde etkinleştiriliyor.
07
Sık sorulan sorular

Windows Server IIS toplu domain yönetimi hakkında yanıtlar

Her domain için ayrı application pool gerekli mi?

Zorunlu değildir. Farklı müşteriler veya uygulamalar için izolasyon sağlar; aynı güven sınırındaki düşük trafikli alias sitelerde paylaşılabilir.

Tek IIS siteye yüzlerce binding eklenebilir mi?

Aynı uygulamayı açacaklarsa teknik olarak mümkündür. Sertifika/SNI, log analizi, canonical ve yönlendirme stratejisini ayrıca tasarlayın.

HTTPS binding otomatik nasıl eklenir?

Önce sertifika edinilir ve LocalMachine sertifika deposuna yüklenir; ardından SNI host binding sertifika thumbprint ile bağlanır. Sertifika yaşam döngüsünü ayrı otomasyonla yönetin.

PHP siteleri IIS'te çalışır mı?

Evet, FastCGI ve uygun PHP yapılandırması gerekir. Domain oluşturma betiğinden ayrı olarak PHP handler, request timeout ve dosya izinlerini standartlaştırın.

Windows DNS Server'a kayıtlar da eklenebilir mi?

DNS rolü aynı sunucudaysa Add-DnsServerResourceRecordA gibi cmdlet'ler kullanılabilir. Harici DNS veya Cloudflare kullanılıyorsa ilgili sağlayıcı API'si ayrı yürütülmelidir.

Google'da birinci sıra garanti edilir mi?

Hayır. Teknik altyapı, özgün metin, çoklu dil URL'leri ve yapılandırılmış veri görünürlüğü destekler; sıralama garantisi oluşturmaz.

08
Konu kümesi

Diğer toplu domain ekleme rehberleri

09
Birincil kaynaklar

Resmî panel, web sunucusu ve Google belgeleri

EKA YAZILIM VE BİLİŞİM SİSTEMLERİ

Yüzlerce domainlik geçişi veri kaybı ve kesinti oluşturmadan planlayalım

Panel seçimi, DNS, SSL, web sunucusu, güvenlik, yedekleme ve doğrulama adımlarını sunucunuzun gerçek yapısına göre uyguluyoruz.

Top