Die Programme könne via Chocolatey schnell und einfach installiert werden. In den vergangenen beiden Beiträgen habe ich darübergeschrieben, wie Chocolatey installiert werden kann und wie Programme als Win32 App verteilt werden können. Hier geht es darum auch das Update dieser Chocolatey Applikationen via Intune zu gewährleisten.
Dieser Beitrag ist der zweite Teil einer Serie zur Verwaltung von Chocolatey Applikationen via Intune.
Part 1: chocolatey - Grundinstallation mit Intune | scloud
Part 2: chocolatey - Programm Installation - Intune | scloud
Part 3: Dieser Beitrag
Mit "choco upgared Appliaktion" kann eine spezifische Applikation und mit "choco upgrade all" alle via Chocolatey installierten Applikationen auf den neusten Stand gebracht werden. Dies einem Endbenutzer beizubringen, funktioniert aber in den meisten Fällen nicht und ist wenig zielführend. Oft scheitert es bereits an den Berechtigungen, welche der Benutzer auf dem Gerät lokal nicht hat.
Lange habe ich darum, um die Applikationen ajour zu halten das ebenfalls auch Chocolatey gelistete Paket "choco-upgrade-all-at-startup" (Chocolatey Software | (unofficial) Choco Upgrade All at Startup (Task) 2021.03.15). Leider hat dieses Pakt in Vergangenheit aber immer wieder zu Problemen geführt, weswegen ich die Funktionalität selbst in einem PowerShell Script aufgebaut habe.
Gelöst habe ich das mit einem Scheduled Task, welcher als Trigger "at Startup" und "Wöchentlich, am Mittwoch um 16.00 Uhr" hat. So wird bei jedem Start des Geräts nach Updates gesucht und Benutzer, welche Ihr Gerät selten bis nie neustarten, werden am Mittwoch abgefangen.
$PackageName = "choco-upgrade"
Start-Transcript -Path "$env:ProgramData\Microsoft\IntuneManagementExtension\Logs\$PackageName-install.log" -Force
# Check choco.exe
$localprograms = C:\ProgramData\chocolatey\choco.exe list --localonly
if ($localprograms -like "*Chocolatey*"){
Write-Host "Chocolatey installed"
}else{
Write-Host "Chocolatey not Found!"
break
}
# Scheduled Task for "choco upgrade -y"
$schtaskName = $PackageName
$schtaskDescription = "Upgade der mit Chocolaty verwalteten Paketen. "
$trigger1 = New-ScheduledTaskTrigger -AtStartup
$trigger2 = New-ScheduledTaskTrigger -Weekly -WeeksInterval 1 -DaysOfWeek Wednesday -At 4pm
$principal= New-ScheduledTaskPrincipal -UserId 'SYSTEM'
$action = New-ScheduledTaskAction –Execute "C:\ProgramData\chocolatey\choco.exe" -Argument 'upgrade all -y'
$settings= New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
Register-ScheduledTask -TaskName $schtaskName -Trigger $trigger1,$trigger2 -Action $action -Principal $principal -Settings $settings -Description $schtaskDescription -Force
Stop-Transcript
Code language: PowerShell (powershell)
Das ganze Paket zum deployen auf meinem GitHub: scloud/chocolatey/chocolatey-updater at main · FlorianSLZ/scloud (github.com)
Win32 Settings
Settings | Wert |
---|---|
Win32 File | install.intunewin |
Name | Chocolatey Updater |
Herausgeber | Betreuer der Umgebung, z.B. scloud |
Logo | Chocolatey Updater.png Nicht zwingend, aber schön, wenn das Unternehmens Portal genutzt wird. |
Install command | %SystemRoot%\sysnative\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -command .\install.ps1 |
Uninstall command | %SystemRoot%\sysnative\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -command .\uninstall.ps1 |
Requirements | 64 bit |
Detection rule | custom script, check.ps1 |
Dependencies | chocolatey |
2 Responses
[…] Part 1: Dieser Beitrag. Part 2: chocolatey - Programm Installation - Intune | scloudPart 3: chocolatey - Programme up to date halten - Intune | scloud […]
[…] Part 1: chocolatey - Grundinstallation mit Intune | scloudPart 2: Dieser BeitragPart 3: chocolatey - Programme up to date halten - Intune | scloud […]