# SSL sertifikası doğrulamasını devre dışı bırakır.
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
# Hata ayıklama modunu açar (debug mesajları görünür olur)
$DebugPreference = "Continue"
# CyberPanel API bilgileri (BURAYI KENDİ BİLGİLERİNE GÖRE DÜZENLE)
$cyberpanelUrl = "https://SUNUCU_IP_ADRESİN:8090/cloudAPI/" # Örn: https://123.45.67.89:8090/cloudAPI/
$authHeader = "Basic SENİN_BASE64_YETKİLENDİRME_KODUN" # Örn: "Basic 9a2hd2ja82j...==" şeklinde
# Bilgisayarındaki dosya yolları (KENDİ DOSYA KONUMUNA GÖRE GÜNCELLE)
$accountsFilePath = "C:\Klasör\Hesap.txt"
$successFilePath = "C:\Klasör\Başarılı.txt"
$failFilePath = "C:\Klasör\Başarısız.txt"
# Daha önceki başarılı/başarısız dosyalarını temizler
if (Test-Path $successFilePath) { Clear-Content $successFilePath }
if (Test-Path $failFilePath) { Clear-Content $failFilePath }
# Hesap.txt dosyasını okur
if (Test-Path $accountsFilePath) {
$accounts = Get-Content -Path $accountsFilePath
} else {
Write-Host "Hesap dosyası bulunamadı: $accountsFilePath"
exit
}
# Her satırdaki e-posta:şifre bilgisini işler
foreach ($account in $accounts) {
if ($account -match "(.+)[:\-](.+)") {
$email = $matches[1].Trim()
$password = $matches[2].Trim()
} else {
Write-Host "Hatalı format: $account"
Add-Content -Path $failFilePath -Value $account
continue
}
# E-posta'yı kullanıcı adı ve domain olarak ayır
$emailParts = $email -split "@"
if ($emailParts.Count -ne 2) {
Write-Host "Geçersiz e-posta formatı: $email"
Add-Content -Path $failFilePath -Value "$email - Geçersiz format"
continue
}
$emailUser = $emailParts[0]
$emailDomain = $emailParts[1]
# API'ye gönderilecek JSON verisi
$body = @{
"serverUserName" = "PANEL_KULLANICI_ADIN" # Genelde "admin" olur
"controller" = "submitEmailCreation"
"domain" = $emailDomain
"username" = $emailUser
"passwordByPass" = $password
} | ConvertTo-Json -Compress
# API isteği için başlıklar
$headers = @{
"Authorization" = $authHeader
"Content-Type" = "application/json"
}
# API çağrısı yapılır
try {
$response = Invoke-RestMethod -Uri $cyberpanelUrl -Method Post -Headers $headers -Body $body
if ($response.status -eq 1) {
Write-Host "✅ Hesap oluşturuldu: $email"
Add-Content -Path $successFilePath -Value "${email}:${password}"
} else {
Write-Host "❌ Oluşturulamadı: $email - Hata: $($response.error_message)"
Add-Content -Path $failFilePath -Value "${email}:${password}"
}
} catch {
Write-Host "⚠️ Hata oluştu: $_"
Add-Content -Path $failFilePath -Value "${email}:${password}"
}
}