Kurulum Medyası İle .NET Framework 3.5 Kuralım (Windows11 Versiyonu)
Gönderilme zamanı: 15 Eki 2025, 15:49
Merhaba
Sordum.NET Makalesi burada :
https://www.sordum.net/18546/kurulum-me ... ment-32573
Bu makaledeki ;
Bu .bat dosyası çok eski (ha çalışır onda sorun yok) ama neden bunun "Modern Windows11-10 sistemlerine göre bir PS1 betik versiyonu olmasın dedim ve bunu kodladım ve gerçek sistem üzerinde denedim.
EKRAN GÖRÜNTÜSÜ : (Sistem : Windows 11.24H2.6899 x64 Home TR) :
Ekran görüntüsünde ;
Mesaj doğrudur. Script artık sorunsuz çalışıyor ama ortam da henüz bir Windows kurulum medyası (USB veya mount edilmiş ISO) yok.
Script’in mantığı şu:
Sistem üzerindeki tüm sürücüler taranıyor (Get-PSDrive -PSProvider FileSystem).
Her sürücüde sources\install.wim veya install.esd dosyaları aranıyor.
Bulunamazsa script böyle bir bilgilendirme mesajı çıkartıyor kullanıcının önüne :
Yani “hata” değil, bilgilendirme mesajıdır. Script doğru çalışıyor ama kurulum medyası bağlanmamış.
Sizlerin yapması gereken işlemler
ISO kullanıyorsanız sağ tık → Mount / Bağla → sanal sürücü oluşacak, script bunu tespit edecek.
USB kullanıyorsanız script otomatik olarak takılı sürücüyü bulacak.
Betiği yeniden "YÖNETİCİ MODUNDA" çalıştırdığınızda .NET Framework 3.5 kurulumu başlayacak.
Betiğin Kısa Özet Açıklaması :
Admin Kontrolü
Betik, yönetici olarak çalıştırılıp çalıştırılmadığını kontrol eder. Yönetici değilse, otomatik olarak yönetici yetkisiyle yeniden açılır. Bu, DISM ile .NET 3.5 kurulumunun sorunsuz yapılabilmesi için zorunludur.
Pencere Başlığı
PowerShell penceresinin başlığı .NET Framework 3.5 Offline Installer olarak ayarlanır. Kullanıcı hangi betiğin çalıştığını hemen görür.
Disk Tespiti (burası önemli) :
Betik, komutuyla sistemdeki tüm dosya sistemlerini (USB, mount edilmiş ISO, HDD/SSD) tarar.
Kurulum Medyası Kontrolü
Her sürücüde sources\install.wim veya sources\install.esd dosyalarının varlığı kontrol edilir. Bu dosyalar Windows kurulum medyasının temel parçalarıdır.
SXS Klasörü Kontrolü
Eğer sources\sxs klasörü yoksa betik kullanıcıyı uyarır ve kurulum durur. Offline kurulum için SXS klasörü gereklidir.
Kurulum Başlatma
DISM (Dism.exe) komutu ile .NET Framework 3.5 etkinleştirilir. Parametreler:
Çıktı ve Hata Kontrolü
Kurulum başarılıysa yeşil mesaj, başarısızsa hata kodu ve uyarılar gösterilir.
Bekletme
ile kullanıcı enter’a basana kadar pencere açık kalır.
KOD İÇERİĞİ :
Güle güle kullanın
Sordum.NET Makalesi burada :
https://www.sordum.net/18546/kurulum-me ... ment-32573
Bu makaledeki ;
Kod: Tümünü seç
@echo off
Title .NET Framework 3.5 Offline Installer
for %%I in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist "%%I:\\sources\install.wim" set setupdrv=%%I
if defined setupdrv (
echo Found drive %setupdrv%
echo Installing .NET Framework 3.5...
Dism /online /enable-feature /featurename:NetFX3 /All /Source:%setupdrv%\sources\sxs /LimitAccess
echo.
echo .NET Framework 3.5 should be installed
echo.
) else (
echo No installation media found!
echo Insert DVD or USB flash drive and run this file once again.
echo.
)
pause
Bu .bat dosyası çok eski (ha çalışır onda sorun yok) ama neden bunun "Modern Windows11-10 sistemlerine göre bir PS1 betik versiyonu olmasın dedim ve bunu kodladım ve gerçek sistem üzerinde denedim.
EKRAN GÖRÜNTÜSÜ : (Sistem : Windows 11.24H2.6899 x64 Home TR) :

Mesaj doğrudur. Script artık sorunsuz çalışıyor ama ortam da henüz bir Windows kurulum medyası (USB veya mount edilmiş ISO) yok.
Script’in mantığı şu:
Sistem üzerindeki tüm sürücüler taranıyor (Get-PSDrive -PSProvider FileSystem).
Her sürücüde sources\install.wim veya install.esd dosyaları aranıyor.
Bulunamazsa script böyle bir bilgilendirme mesajı çıkartıyor kullanıcının önüne :
Kod: Tümünü seç
No Windows installation media found!
Insert USB or mount ISO and run this script again.Sizlerin yapması gereken işlemler
ISO kullanıyorsanız sağ tık → Mount / Bağla → sanal sürücü oluşacak, script bunu tespit edecek.
USB kullanıyorsanız script otomatik olarak takılı sürücüyü bulacak.
Betiği yeniden "YÖNETİCİ MODUNDA" çalıştırdığınızda .NET Framework 3.5 kurulumu başlayacak.
Betiğin Kısa Özet Açıklaması :
Admin Kontrolü
Betik, yönetici olarak çalıştırılıp çalıştırılmadığını kontrol eder. Yönetici değilse, otomatik olarak yönetici yetkisiyle yeniden açılır. Bu, DISM ile .NET 3.5 kurulumunun sorunsuz yapılabilmesi için zorunludur.
Pencere Başlığı
PowerShell penceresinin başlığı .NET Framework 3.5 Offline Installer olarak ayarlanır. Kullanıcı hangi betiğin çalıştığını hemen görür.
Disk Tespiti (burası önemli) :
Betik,
Kod: Tümünü seç
Get-PSDrive -PSProvider FileSystemKurulum Medyası Kontrolü
Her sürücüde sources\install.wim veya sources\install.esd dosyalarının varlığı kontrol edilir. Bu dosyalar Windows kurulum medyasının temel parçalarıdır.
SXS Klasörü Kontrolü
Eğer sources\sxs klasörü yoksa betik kullanıcıyı uyarır ve kurulum durur. Offline kurulum için SXS klasörü gereklidir.
Kurulum Başlatma
DISM (Dism.exe) komutu ile .NET Framework 3.5 etkinleştirilir. Parametreler:
Kod: Tümünü seç
/Online /Enable-Feature /FeatureName:NetFX3 /All /Source:<medya yolu> /LimitAccess /Quiet /NoRestartKurulum başarılıysa yeşil mesaj, başarısızsa hata kodu ve uyarılar gösterilir.
Bekletme
Kod: Tümünü seç
Read-Host "Press Enter to exit"KOD İÇERİĞİ :
Kod: Tümünü seç
# .NET Framework 3.5 Offline Installer - ISO ve USB Tespiti ile Tam Otomatik
# PowerShell 10/11 uyumlu, Test-Path hatası düzeltilmiş
# Admin yetkisi kontrolü
If (-Not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
Write-Warning "Bu script yönetici olarak çalıştırılmalı!"
Start-Process powershell "-ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
Exit
}
$host.UI.RawUI.WindowTitle = ".NET Framework 3.5 Offline Installer"
# Tüm dosya sistemlerini al
$drives = Get-PSDrive -PSProvider FileSystem | Select-Object -ExpandProperty Root
$setupDrive = $null
foreach ($d in $drives) {
if ((Test-Path "${d}sources\install.wim") -or (Test-Path "${d}sources\install.esd")) {
$setupDrive = $d.TrimEnd('\') # son '\' karakterini kaldır
break
}
}
if ($setupDrive) {
Write-Host "Found Windows installation media on $setupDrive" -ForegroundColor Green
$sourcePath = "$setupDrive\sources\sxs"
if (-Not (Test-Path $sourcePath)) {
Write-Host "SXS klasörü bulunamadı: $sourcePath" -ForegroundColor Red
Write-Host "Lütfen doğru Windows kurulum medyasını kullanın." -ForegroundColor Yellow
Read-Host "Press Enter to exit"
Exit
}
Write-Host "Installing .NET Framework 3.5..." -ForegroundColor Cyan
$dism = Start-Process Dism.exe -ArgumentList "/Online /Enable-Feature /FeatureName:NetFX3 /All /Source:$sourcePath /LimitAccess /Quiet /NoRestart" -Wait -PassThru
if ($dism.ExitCode -eq 0) {
Write-Host ".NET Framework 3.5 başarıyla yüklendi!" -ForegroundColor Green
} else {
Write-Host "Kurulum tamamlanamadı. Hata kodu: $($dism.ExitCode)" -ForegroundColor Red
Write-Host "Lütfen kaynak medyayı ve sistem durumunu kontrol edin." -ForegroundColor Yellow
}
} else {
Write-Host "No Windows installation media found!" -ForegroundColor Red
Write-Host "Insert USB or mount ISO and run this script again." -ForegroundColor Yellow
}
Read-Host "Press Enter to exit"