Skip to content

Instantly share code, notes, and snippets.

@NiceRath
Last active August 12, 2024 13:21
Show Gist options
  • Save NiceRath/2dc3812ea41eaa98a7f729d85522fe95 to your computer and use it in GitHub Desktop.
Save NiceRath/2dc3812ea41eaa98a7f729d85522fe95 to your computer and use it in GitHub Desktop.
Chocolatey - Install Software on Windows Startup
$LOGFILE = 'C:\gpo\logs\choco.log'
# NOTES:
# you need to install chocolatey first: https://community.chocolatey.org/install.ps1
# code source: https://octopus.com/blog/automate-developer-machine-setup-with-chocolatey (heavily modified)
# packages COULD have problems installing since all of them are community-driven
# packages to install/upgrade
# KEY = Package Name ; Value = Install Flags
$APPLIST = @{
'notepadplusplus' = ''
'7zip' = ''
'laps' = ''
'googlechrome' = ''
'adobereader' = '/UpdateMode:3'
'hashtab' = ''
'nano' = ''
}
echo '####################' | Tee-Object -Append -Filepath $LOGFILE
Get-Date | Tee-Object -Append -FilePath $LOGFILE
# prerequisits
echo 'Installing prereqisits' | Tee-Object -Append -Filepath $LOGFILE
choco feature enable -n=allowGlobalConfirmation | Tee-Object -Append -Filepath $LOGFILE # disable yes/no prompts
choco install chocolatey-core.extension | Tee-Object -Append -Filepath $LOGFILE # for dependencies
choco install chocolatey-windowsupdate.extension | Tee-Object -Append -Filepath $LOGFILE # allow kb packages to be installed via choco
echo 'Starting chocolatey software deployment' | Tee-Object -Append -Filepath $LOGFILE
# install / upgrade loop
ForEach ($app in $APPLIST.Keys) {
$params = $($APPLIST[$app])
echo '##########' | Tee-Object -Append -Filepath $LOGFILE
echo "Processing app '$app' with arguments: '$params'" | Tee-Object -Append -Filepath $LOGFILE
& choco upgrade $app -y --no-progress --params "'$params'" | Tee-Object -Append -Filepath $LOGFILE
echo "Exit code: $exitCode" | Tee-Object -Append -Filepath $LOGFILE
}
echo 'Finished chocolatey software deployment' | Tee-Object -Append -Filepath $LOGFILE
Get-Date | Tee-Object -Append -FilePath $LOGFILE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment