winutil/functions/private/Set-WinUtilRestorePoint.ps1
Chris Titus 8047393dc8
Test 2023 08 09 (#1004)
* Add Message confirming restore point created (#953)

* Compile Winutil

* readme update

* remove unnecessary space from property name (#965)

* Compile Winutil

* Add application (#969)

Add BCU to Utilities

* Update winget.ps1 (#979)

I just updated the script to version 3.0.0 and am pushing this out to your project too. 😊

https://github.com/asheroto/winget-install

You can use the signed version from releases if preferred.

* Compile Winutil

* Commit to fix #983

* Compile Winutil

* Disables the icons on the taskbar for: (#996)

- Chat/Teams
- Search Bar
- Task View
- Widgets

* Compile Winutil

* Add naps2 (#999)

* Compile Winutil

* Update autohotkey id (#1000)

* Compile Winutil

* fix package name (#1001)

* Compile Winutil

---------

Co-authored-by: Stephen Harris <stephen@lunamile.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: edelvarden <42596339+edelvarden@users.noreply.github.com>
Co-authored-by: Giannis Lagodimos <62063308+Giann1s@users.noreply.github.com>
Co-authored-by: asheroto <49938263+asheroto@users.noreply.github.com>
Co-authored-by: FriendlyButFire <antoguada96@gmail.com>
Co-authored-by: Padsala Tushal <57517785+padsalatushal@users.noreply.github.com>
2023-09-07 14:37:27 -05:00

41 lines
1.8 KiB
PowerShell

function Set-WinUtilRestorePoint {
<#
.DESCRIPTION
This function will make a Restore Point
#>
# Check if the user has administrative privileges
if (-Not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Host "Please run this script as an administrator."
return
}
# Check if System Restore is enabled for the main drive
try {
# Try getting restore points to check if System Restore is enabled
Enable-ComputerRestore -Drive "$env:SystemDrive"
} catch {
Write-Host "An error occurred while enabling System Restore: $_"
}
# Check if the SystemRestorePointCreationFrequency value exists
$exists = Get-ItemProperty -path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore" -name "SystemRestorePointCreationFrequency" -ErrorAction SilentlyContinue
if($null -eq $exists){
write-host 'Changing system to allow multiple restore points per day'
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore" -Name "SystemRestorePointCreationFrequency" -Value "0" -Type DWord -Force -ErrorAction Stop | Out-Null
}
# Get all the restore points for the current day
$existingRestorePoints = Get-ComputerRestorePoint | Where-Object { $_.CreationTime.Date -eq (Get-Date).Date }
# Check if there is already a restore point created today
if ($existingRestorePoints.Count -eq 0) {
$description = "System Restore Point created by WinUtil"
Checkpoint-Computer -Description $description -RestorePointType "MODIFY_SETTINGS"
Write-Host -ForegroundColor Green "System Restore Point Created Successfully"
}
}