Windows 10 sistem korumasını kapatmak
Gönderilme zamanı: 17 Mar 2026, 05:33
Bir script vardı elimde bulamıyorum elinde olan var mı acaba
Kod: Tümünü seç
# sistem_koruma.ps1
# Windows 10/11 Sistem Korumasını açar, kapatır ve durumunu analiz eder.
# Kullanım: Sağ tıkla > "PowerShell ile Çalıştır"
#Requires -Version 5.1
Set-StrictMode -Version Latest
$ErrorActionPreference = "SilentlyContinue"
# --- Yönetici hakkı kontrolü ve otomatik yükseltme ---
function YoneticiHakkiKontrol {
$mevcutKullanici = [Security.Principal.WindowsIdentity]::GetCurrent()
$yetkiKontrol = New-Object Security.Principal.WindowsPrincipal($mevcutKullanici)
if (-not $yetkiKontrol.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Host "Yönetici yetkisi gerekiyor, yeniden başlatılıyor..." -ForegroundColor Yellow
Start-Process -FilePath "powershell.exe" `
-ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" `
-Verb RunAs
exit
}
}
# --- Tüm sürücülerin durumunu analiz et ---
function DurumAnaliz {
Write-Host "`n--- Sistem Koruma Durumu Analizi ---`n" -ForegroundColor Cyan
$suruculer = Get-WmiObject -Namespace "root\default" `
-Class "SystemRestore" `
-ErrorAction SilentlyContinue
# Kayıt defterinden koruma durumunu oku
$korumaDurumu = @{}
$regYolu = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SPP\Clients"
Get-PSDrive -PSProvider FileSystem | ForEach-Object {
$harf = "$($_.Root.TrimEnd('\'))"
$regAnahtar = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
# vssadmin ile koruma durumu
$vssСикти = & vssadmin list shadowstorage /for=$harf 2>&1
$korumaDurumu[$harf] = $vssCikti
}
# Gerçek koruma durumu ComputerRestoreStatus üzerinden
$surucuListesi = Get-WmiObject -Namespace "root\default" `
-Query "SELECT * FROM SystemRestoreConfig" `
-ErrorAction SilentlyContinue
Write-Host " Sürücü Durum Geri Yükleme Noktası Sayısı" -ForegroundColor White
Write-Host " -------- ------------------ ----------------------------" -ForegroundColor Gray
Get-PSDrive -PSProvider FileSystem | ForEach-Object {
$harf = $_.Root.TrimEnd('\')
$harfUz = "$harf\"
# Koruma durumu: Enable-ComputerRestore çalışıyorsa etkin
$durum = "Bilinmiyor"
$renk = "Gray"
try {
$srKonfig = Get-ItemProperty `
"HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore" `
-ErrorAction Stop
$devreDisi = (Get-ItemProperty `
"HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" `
-ErrorAction SilentlyContinue)
# VSS gölge depolaması var mı kontrol et
$vssCikti = & vssadmin list shadowstorage 2>&1 | Out-String
if ($vssCikti -match [regex]::Escape($harf)) {
$durum = "Etkin "
$renk = "Green"
} else {
$durum = "Devre Dışı"
$renk = "Red"
}
} catch {
$durum = "Okunamadı "
$renk = "Yellow"
}
# Geri yükleme noktası sayısı
$noktaSayisi = 0
try {
$noktalar = Get-ComputerRestorePoint -ErrorAction SilentlyContinue
if ($noktalar) {
$noktaSayisi = ($noktalar | Where-Object {
$_.Description -notlike "*" -or $true
}).Count
}
} catch {}
Write-Host -NoNewline " $($harf.PadRight(9))"
Write-Host -NoNewline "$durum" -ForegroundColor $renk
Write-Host " $noktaSayisi adet"
}
# Sistem C: sürücüsü için detaylı bilgi
Write-Host "`n--- C:\ Sürücüsü Detayı ---`n" -ForegroundColor Cyan
try {
$noktalar = Get-ComputerRestorePoint -ErrorAction Stop
if ($noktalar -and $noktalar.Count -gt 0) {
$noktalar | Sort-Object CreationTime -Descending |
Select-Object -First 5 |
Format-Table `
@{Label="Açıklama"; Expression={$_.Description}; Width=40},
@{Label="Tür"; Expression={$_.RestorePointType}; Width=20},
@{Label="Oluşturulma"; Expression={
[Management.ManagementDateTimeConverter]::ToDateTime($_.CreationTime)
}; Width=22} -AutoSize
Write-Host " (Son 5 geri yükleme noktası gösteriliyor)" -ForegroundColor Gray
} else {
Write-Host " Geri yükleme noktası bulunamadı." -ForegroundColor Yellow
}
} catch {
Write-Host " Geri yükleme noktaları okunamadı." -ForegroundColor Yellow
}
# VSS depolama detayı
Write-Host "`n--- VSS Gölge Depolama Bilgisi ---`n" -ForegroundColor Cyan
& vssadmin list shadowstorage 2>&1 | ForEach-Object {
if ($_ -match "Hata|Error") {
Write-Host " $_" -ForegroundColor Red
} elseif ($_ -match "Boyut|Size|Kullanılan|Used") {
Write-Host " $_" -ForegroundColor White
} else {
Write-Host " $_" -ForegroundColor Gray
}
}
}
# --- Sistem korumasını etkinleştir ---
function KorumayiEtkinlestir {
Write-Host "`nHangi sürücü için etkinleştirilsin?" -ForegroundColor Yellow
$suruculer = Get-PSDrive -PSProvider FileSystem |
Select-Object -ExpandProperty Root |
ForEach-Object { $_.TrimEnd('\') }
for ($i = 0; $i -lt $suruculer.Count; $i++) {
Write-Host " $($i + 1). $($suruculer[$i])"
}
Write-Host " A. Tüm sürücüler"
$secim = Read-Host "`nSeçiminiz"
$hedefler = @()
if ($secim -match "^[Aa]$") {
$hedefler = $suruculer
} elseif ($secim -match "^\d+$" -and [int]$secim -ge 1 -and [int]$secim -le $suruculer.Count) {
$hedefler = @($suruculer[[int]$secim - 1])
} else {
Write-Host "Geçersiz seçim." -ForegroundColor Red
return
}
foreach ($surucu in $hedefler) {
Write-Host "`n'$surucu' için sistem koruması etkinleştiriliyor..." -ForegroundColor Yellow
try {
Enable-ComputerRestore -Drive "$surucu\" -ErrorAction Stop
Write-Host "'$surucu' için sistem koruması etkinleştirildi." -ForegroundColor Green
} catch {
Write-Host "'$surucu' için etkinleştirme başarısız: $_" -ForegroundColor Red
}
}
}
# --- Sistem korumasını devre dışı bırak ---
function KorumayiDevreDisi {
Write-Host "`nHangi sürücü için devre dışı bırakılsın?" -ForegroundColor Yellow
$suruculer = Get-PSDrive -PSProvider FileSystem |
Select-Object -ExpandProperty Root |
ForEach-Object { $_.TrimEnd('\') }
for ($i = 0; $i -lt $suruculer.Count; $i++) {
Write-Host " $($i + 1). $($suruculer[$i])"
}
Write-Host " A. Tüm sürücüler"
$secim = Read-Host "`nSeçiminiz"
$hedefler = @()
if ($secim -match "^[Aa]$") {
$hedefler = $suruculer
} elseif ($secim -match "^\d+$" -and [int]$secim -ge 1 -and [int]$secim -le $suruculer.Count) {
$hedefler = @($suruculer[[int]$secim - 1])
} else {
Write-Host "Geçersiz seçim." -ForegroundColor Red
return
}
# Uyarı
Write-Host "`nUYARI: Sistem koruması devre dışı bırakılırsa mevcut geri" -ForegroundColor Red
Write-Host "yükleme noktaları SİLİNECEKTİR. Devam etmek istiyor musunuz?" -ForegroundColor Red
$onay = Read-Host "(E/H)"
if ($onay -notmatch "^[Ee]$") {
Write-Host "İşlem iptal edildi." -ForegroundColor Gray
return
}
foreach ($surucu in $hedefler) {
Write-Host "`n'$surucu' için sistem koruması devre dışı bırakılıyor..." -ForegroundColor Yellow
try {
Disable-ComputerRestore -Drive "$surucu\" -ErrorAction Stop
Write-Host "'$surucu' için sistem koruması devre dışı bırakıldı." -ForegroundColor Green
} catch {
Write-Host "'$surucu' için devre dışı bırakma başarısız: $_" -ForegroundColor Red
}
}
}
# --- Manuel geri yükleme noktası oluştur ---
function GeriYuklemeNoktasiOlustur {
$aciklama = Read-Host "`nGeri yükleme noktası açıklaması girin"
if ([string]::IsNullOrWhiteSpace($aciklama)) {
$aciklama = "Manuel - $(Get-Date -Format 'dd.MM.yyyy HH:mm')"
}
Write-Host "`nGeri yükleme noktası oluşturuluyor..." -ForegroundColor Yellow
try {
Checkpoint-Computer -Description $aciklama `
-RestorePointType "MODIFY_SETTINGS" `
-ErrorAction Stop
Write-Host "Geri yükleme noktası başarıyla oluşturuldu: '$aciklama'" -ForegroundColor Green
} catch {
Write-Host "Geri yükleme noktası oluşturulamadı: $_" -ForegroundColor Red
Write-Host "C:\ için sistem koruması etkin olmayabilir." -ForegroundColor Yellow
}
}
# --- Ana menü ---
function AnaMenu {
while ($true) {
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host " Sistem Koruma Yöneticisi" -ForegroundColor Cyan
Write-Host " Windows 10 / 11" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host " 1. Durum analizi"
Write-Host " 2. Sistem korumasını etkinleştir"
Write-Host " 3. Sistem korumasını devre dışı bırak"
Write-Host " 4. Manuel geri yükleme noktası oluştur"
Write-Host " 0. Çıkış"
Write-Host "========================================" -ForegroundColor Cyan
$secim = Read-Host "`nSeçiminiz"
switch ($secim) {
"1" { DurumAnaliz }
"2" { KorumayiEtkinlestir }
"3" { KorumayiDevreDisi }
"4" { GeriYuklemeNoktasiOlustur }
"0" { Write-Host "Çıkılıyor..." -ForegroundColor Gray; exit }
default { Write-Host "Geçersiz seçim, tekrar deneyin." -ForegroundColor Red }
}
Write-Host "`nDevam etmek için bir tuşa basın..."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
}
# ============================================================
# BAŞLANGIÇ
# ============================================================
YoneticiHakkiKontrol
AnaMenuviewtopic.php?p=537872Kayserilifatih yazdı: 17 Mar 2026, 17:45 Powershell iyi olsaydı şimdiye çoktan esas popüler dil olmuştu ki maalesef 2006 dan beri hala yerlerde sürünüyor. Sonunun Windows media player gibi olacağını düşünüyorum. Hayatımda bir iki işlem dışında hiçbir zaman Powershell'e ihtiyaç duyduğumu hatırlamıyorum.
Yani admin Allah(c.c) aşkına söz konusu forum konusu 8 Temmuz 2024 Pazartesi 13:23:21 açılmış, o zamandan bu zaman'a kadar bu PS bir sürü iyileştirme aldı.Daha da stabileşti....Bu durumu gözardı etmemelisin...velociraptor yazdı: 17 Mar 2026, 17:56viewtopic.php?p=537872Kayserilifatih yazdı: 17 Mar 2026, 17:45 Powershell iyi olsaydı şimdiye çoktan esas popüler dil olmuştu ki maalesef 2006 dan beri hala yerlerde sürünüyor. Sonunun Windows media player gibi olacağını düşünüyorum. Hayatımda bir iki işlem dışında hiçbir zaman Powershell'e ihtiyaç duyduğumu hatırlamıyorum.
Kod: Tümünü seç
Set-ExecutionPolicy RemoteSigned. Bak ona katılırım ama o sistemler zaten Microsoft'a göre ölü ...Hali ile uyumsuzluk olması gayet doğal...velociraptor yazdı: 17 Mar 2026, 18:12 Powershell normal programlama dillerinden birine çok daha yakın olabilirdi. Bu hali ile ölü doğdu sebebi zaten verilen makale linkinde yazıyor. Microsoft hata üstüne hata yapıyor. Zorlama ile bir yere kadar gider bakalım nereye kadar gidecek. Powershell in eklenen özellikleri geriye dönük uyumlu değil sana şöyle açıklayayım : Powershell de yazılmış bir script ne Xp de çalışır ne windows 7 de nede 8 de (Çünkü Powershell sürümleri uyumsuzdur , Powershell 7 deki bir özellik daha düşük sürümlerde olmadığından ilgili özellik kullanılan script çalışmayacaktır vs.) .... haa sanmam ama ilerde bu sıkıntıları aşarlarsa bir ihtimal.