# Upgrade-Choco.ps1 # Runs Chocolatey upgrade for all installed packages and logs the output. $LogFile = Join-Path $PSScriptRoot "Upgrade-Choco.log" function Log-Message { param([string]$Message) $Timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss" $LogLine = "[$Timestamp] $Message" Write-Output $LogLine Add-Content -Path $LogFile -Value $LogLine -ErrorAction SilentlyContinue } Log-Message "==================================================" Log-Message "Starting Chocolatey upgrade task..." Log-Message "==================================================" # Check if chocolatey is available if (Get-Command choco -ErrorAction SilentlyContinue) { Log-Message "Chocolatey found. Executing: choco upgrade all -y" try { # Run choco upgrade and append output to log file # We redirect stdout and stderr to the log file & choco upgrade all -y 2>&1 | Add-Content -Path $LogFile -ErrorAction SilentlyContinue Log-Message "Chocolatey upgrade execution completed. Exit code: $LastExitCode" } catch { Log-Message "An error occurred while running choco: $_" } } else { Log-Message "Error: choco command not found." } Log-Message "==================================================" Log-Message "Chocolatey upgrade task finished." Log-Message "=================================================="