@echo off
setlocal EnableExtensions
title Windows Guncelleme Kontrol - bilgisayarborsasi.com.tr

net session >nul 2>&1
if %errorlevel% neq 0 (
  echo Yonetici yetkisi isteniyor...
  powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs"
  exit /b
)

set "WU=HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
set "AU=%WU%\AU"
set "BUILD=0"
set "DVER="
set "EDITION=bilinmiyor"

for /f "tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentBuild 2^>nul ^| findstr /c:"CurrentBuild"') do set "BUILD=%%a"
for /f "tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v DisplayVersion 2^>nul ^| findstr /c:"DisplayVersion"') do set "DVER=%%a"
for /f "tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID 2^>nul ^| findstr /c:"EditionID"') do set "EDITION=%%a"
set "PRODUCT=Windows 10"
if %BUILD% GEQ 22000 set "PRODUCT=Windows 11"

:menu
cls
echo ============================================================
echo   WINDOWS GUNCELLEME KONTROL
echo   bilgisayarborsasi.com.tr/rehber/windows-guncelleme-kapatma
echo ============================================================
echo   Sistem : %PRODUCT% %DVER%  (surum: %EDITION%, derleme %BUILD%)
echo ------------------------------------------------------------
echo   1 - Otomatik guncellemeyi kapat
echo       (guncellemeler sadece siz "Guncellestirmeleri denetle"
echo        dediginizde iner ve kurulur)
echo   2 - Surucu guncellemelerini kapat
echo       (Windows Update ekran karti, ses vb. suruculerini degistirmez)
echo   3 - Windows surumunu sabitle (%PRODUCT% %DVER%)
echo       (guvenlik guncellemeleri gelir, yeni surume gecis gelmez)
echo   4 - Hepsini geri ac (varsayilan Windows ayari)
echo   5 - Mevcut durumu goster
echo   0 - Cikis
echo ------------------------------------------------------------
set "SEC="
set /p "SEC=Seciminiz: "
if "%SEC%"=="1" goto kapat
if "%SEC%"=="2" goto surucu
if "%SEC%"=="3" goto sabitle
if "%SEC%"=="4" goto geriac
if "%SEC%"=="5" goto durum
if "%SEC%"=="0" exit /b
goto menu

:kapat
reg add "%AU%" /v NoAutoUpdate /t REG_DWORD /d 1 /f >nul
if %errorlevel% neq 0 (echo HATA: ayar yazilamadi. & pause & goto menu)
echo.
echo Otomatik guncelleme KAPATILDI.
echo Guncellemeleri istediginiz zaman Ayarlar ^> Windows Update ^>
echo "Guncellestirmeleri denetle" ile elle kurabilirsiniz.
echo Guvenlik icin ayda en az bir kez elle guncellemeniz onerilir.
echo Degisikligin tam oturmasi icin bilgisayari yeniden baslatin.
pause
goto menu

:surucu
reg add "%WU%" /v ExcludeWUDriversInQualityUpdate /t REG_DWORD /d 1 /f >nul
if %errorlevel% neq 0 (echo HATA: ayar yazilamadi. & pause & goto menu)
echo.
echo Surucu guncellemeleri KAPATILDI. Windows guvenlik guncellemeleri
echo gelmeye devam eder; suruculeri uretici sitesinden kurabilirsiniz.
pause
goto menu

:sabitle
if not defined DVER (echo HATA: Windows surumu okunamadi. & pause & goto menu)
if /i "%EDITION%"=="Core" (
  echo.
  echo UYARI: Bu bilgisayar Windows Home surumu. Microsoft bu ayari
  echo resmi olarak Pro, Enterprise ve Education icin destekler;
  echo Home surumunde uygulanmayabilir.
  set "EVET="
  set /p "EVET=Yine de yazilsin mi? (E/H): "
)
if /i "%EDITION%"=="Core" if /i not "%EVET%"=="E" goto menu
reg add "%WU%" /v TargetReleaseVersion /t REG_DWORD /d 1 /f >nul
reg add "%WU%" /v ProductVersion /t REG_SZ /d "%PRODUCT%" /f >nul
reg add "%WU%" /v TargetReleaseVersionInfo /t REG_SZ /d "%DVER%" /f >nul
echo.
echo Surum %PRODUCT% %DVER% olarak SABITLENDI.
echo Bu surumun destegi bitene kadar guvenlik guncellemeleri gelir.
echo Destek bittiginde bu ayari 4 numarali secenekle kaldirin.
pause
goto menu

:geriac
reg delete "%AU%" /v NoAutoUpdate /f >nul 2>&1
reg delete "%WU%" /v ExcludeWUDriversInQualityUpdate /f >nul 2>&1
reg delete "%WU%" /v TargetReleaseVersion /f >nul 2>&1
reg delete "%WU%" /v ProductVersion /f >nul 2>&1
reg delete "%WU%" /v TargetReleaseVersionInfo /f >nul 2>&1
echo.
echo Tum ayarlar kaldirildi. Windows Update varsayilan haline dondu.
echo Bilgisayari yeniden baslatin.
pause
goto menu

:durum
echo.
set "S1=ACIK (varsayilan)"
reg query "%AU%" /v NoAutoUpdate 2>nul | findstr /c:"0x1" >nul && set "S1=KAPALI"
set "S2=ACIK (varsayilan)"
reg query "%WU%" /v ExcludeWUDriversInQualityUpdate 2>nul | findstr /c:"0x1" >nul && set "S2=KAPALI"
set "S3=sabit degil"
for /f "tokens=3" %%a in ('reg query "%WU%" /v TargetReleaseVersionInfo 2^>nul ^| findstr /c:"TargetReleaseVersionInfo"') do set "S3=%%a olarak sabit"
echo   Otomatik guncelleme  : %S1%
echo   Surucu guncellemesi  : %S2%
echo   Windows surumu       : %S3%
echo.
pause
goto menu
