43 lines
No EOL
1.5 KiB
PowerShell
43 lines
No EOL
1.5 KiB
PowerShell
# ==========================================
|
|
# 1. Setup Variables (Fix for missing vars)
|
|
# ==========================================
|
|
$TicketNumber = "INC-12345" # Your Ticket Number
|
|
$ScriptStartTime = Get-Date # Current DateTime object
|
|
$LogFile = "C:\Logs\QuestCleanup.log" # Path to your log file
|
|
$ScriptResult = @{} # Initialize the result hashtable
|
|
|
|
# (Optional) Define Write-Log if it is not available in your environment
|
|
function global:Write-Log {
|
|
param(
|
|
[string]$Message,
|
|
[string]$Level = "INFO"
|
|
)
|
|
"$Level - $Message"
|
|
}
|
|
|
|
# ==========================================
|
|
# 2. Main Script Logic
|
|
# ==========================================
|
|
|
|
$RestorePointName = "QUEST-CLEANUP-$($TicketNumber -replace '[^A-Za-z0-9]', '')-$($ScriptStartTime.ToString('yyyy-MM-dd'))"
|
|
|
|
try {
|
|
Write-Log "Creating initial restore point: $RestorePointName"
|
|
|
|
# Requires Admin Rights and System Restore enabled
|
|
Checkpoint-Computer -Description $RestorePointName -ErrorAction Stop
|
|
|
|
$ScriptResult.restore_point_initial.created = $true
|
|
$ScriptResult.restore_point_initial.name = $RestorePointName
|
|
Write-Log "Initial restore point created successfully."
|
|
}
|
|
catch {
|
|
$ErrorMsg = "Failed to create initial restore point: $($_.Exception.Message)"
|
|
$ScriptResult.restore_point_initial.error = $ErrorMsg
|
|
Write-Log $ErrorMsg -Level "ERROR"
|
|
}
|
|
|
|
Write-Log "Initial restore point section completed."
|
|
|
|
# Appends a blank line to the log file
|
|
"" | Out-File -FilePath $LogFile -Append -Encoding UTF8 |