Situatie
System Restore este o plasa de siguranta excelenta cand o actualizare, un driver sau o aplicatie strica sistemul. Problema: Windows creeaza puncte de restaurare rar si imprevizibil, iar in mod implicit limiteaza crearea unui punct nou la maximum unul la 24 de ore. Solutia de mai jos creeaza automat, in fiecare zi, cate un punct de restaurare, folosind un script PowerShell rulat de Task Scheduler.
Pasul 1 — Activarea System Restore
System Restore poate fi dezactivat implicit. Activati-l pe partitia de sistem dintr-o consola PowerShell ca administrator:
| Enable-ComputerRestore -Drive “C:\” |
Optional, alocati spatiu pe disc pentru punctele de restaurare (ex. 5%):
| vssadmin resize shadowstorage /for=C: /on=C: /maxsize=5% |
Pasul 2 — Eliminarea limitei de 24 de ore (optional)
In mod implicit, Windows refuza sa creeze un punct nou daca exista deja unul mai recent de 24 de ore. Daca vreti ca sarcina zilnica sa functioneze garantat, ajustati aceasta frecventa din registru:
| New-ItemProperty `
-Path “HKLM:\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore” ` -Name “SystemRestorePointCreationFrequency” ` -Value 0 -PropertyType DWord -Force |
Valoarea 0 permite crearea unui punct oricand, fara limita de un punct pe zi.
Pasul 3 — Scriptul PowerShell
Creati folderul C:\Scripts si salvati in el un fisier numit DailyRestorePoint.ps1 cu urmatorul continut:
| $data = Get-Date -Format ‘yyyy-MM-dd HH:mm’
Checkpoint-Computer ` -Description “Punct automat zilnic – $data” ` -RestorePointType ‘MODIFY_SETTINGS’ |
Tipul MODIFY_SETTINGS este cel recomandat pentru puncte create manual/programat. Descrierea include data si ora, ca sa identificati usor punctul in lista.
Pasul 4 — Crearea sarcinii programate
Puteti crea sarcina direct din PowerShell (rulat ca administrator), fara interfata grafica. Exemplul ruleaza scriptul in fiecare zi la ora 12:00, cu privilegii ridicate:
| $action = New-ScheduledTaskAction `
-Execute ‘powershell.exe’ ` -Argument ‘-NoProfile -ExecutionPolicy Bypass -File “C:\Scripts\DailyRestorePoint.ps1″‘
$trigger = New-ScheduledTaskTrigger -Daily -At 12:00PM
$principal = New-ScheduledTaskPrincipal ` -UserId “SYSTEM” -LogonType ServiceAccount -RunLevel Highest
$settings = New-ScheduledTaskSettingsSet ` -StartWhenAvailable -AllowStartIfOnBatteries ` -DontStopIfGoingOnBatteries
Register-ScheduledTask ` -TaskName “Punct de restaurare zilnic” ` -Action $action -Trigger $trigger ` -Principal $principal -Settings $settings |
Explicatie pe scurt:
- -StartWhenAvailable: daca PC-ul era oprit la ora programata, sarcina ruleaza la urmatoarea pornire.
- RunLevel Highest + SYSTEM: Checkpoint-Computer necesita privilegii de administrator.
- -AllowStartIfOnBatteries: ruleaza si pe laptop, chiar daca nu e in priza.
Pasul 5 — Testarea
Rulati sarcina manual, fara a astepta ora programata:
| Start-ScheduledTask -TaskName “Punct de restaurare zilnic” |
Verificati apoi ca punctul a fost creat:
| Get-ComputerRestorePoint | Select-Object -Last 5 |
Ar trebui sa vedeti in lista punctul cu descrierea „Punct automat zilnic” si data curenta.
Leave A Comment?