commit
ea3680d54b
|
@ -38,15 +38,16 @@ $Script:WorkingDir = $PSScriptRoot
|
|||
. $WorkingDir\functions\Get-NotifLocale.ps1
|
||||
. $WorkingDir\functions\Start-NotifTask.ps1
|
||||
|
||||
#Get Toast Locale function
|
||||
Get-NotifLocale
|
||||
|
||||
#Set common variables
|
||||
$OnClickAction = "$WorkingDir\logs\updates.log"
|
||||
$Button1Text = $NotifLocale.local.outputs.output[11].message
|
||||
$Title = "Winget-AutoUpdate (WAU)"
|
||||
$Balise = "Winget-AutoUpdate (WAU)"
|
||||
$UserRun = $True
|
||||
|
||||
#Get Toast Locale function
|
||||
Get-NotifLocale
|
||||
|
||||
if ($Logs) {
|
||||
if ((Test-Path "$WorkingDir\logs\updates.log")) {
|
||||
Invoke-Item "$WorkingDir\logs\updates.log"
|
||||
|
@ -55,7 +56,7 @@ if ($Logs) {
|
|||
#Not available yet
|
||||
$Message = $NotifLocale.local.outputs.output[5].message
|
||||
$MessageType = "warning"
|
||||
Start-NotifTask $Title $Message $MessageType $Balise
|
||||
Start-NotifTask -Message $Message -MessageType $MessageType
|
||||
}
|
||||
}
|
||||
elseif ($Help) {
|
||||
|
@ -67,7 +68,7 @@ else {
|
|||
if (Test-WAUisRunning) {
|
||||
$Message = $NotifLocale.local.outputs.output[8].message
|
||||
$MessageType = "warning"
|
||||
Start-NotifTask $Title $Message $MessageType $Balise $OnClickAction
|
||||
Start-NotifTask -Message $Message -MessageType $MessageType -Button1Text $Button1Text -Button1Action $OnClickAction -ButtonDismiss
|
||||
break
|
||||
}
|
||||
#Run scheduled task
|
||||
|
@ -75,19 +76,19 @@ else {
|
|||
#Starting check - Send notification
|
||||
$Message = $NotifLocale.local.outputs.output[6].message
|
||||
$MessageType = "info"
|
||||
Start-NotifTask $Title $Message $MessageType $Balise $OnClickAction
|
||||
Start-NotifTask -Message $Message -MessageType $MessageType -Button1Text $Button1Text -Button1Action $OnClickAction -ButtonDismiss
|
||||
#Sleep until the task is done
|
||||
While (Test-WAUisRunning) {
|
||||
Start-Sleep 3
|
||||
}
|
||||
$Message = $NotifLocale.local.outputs.output[9].message
|
||||
$MessageType = "success"
|
||||
Start-NotifTask $Title $Message $MessageType $Balise $OnClickAction
|
||||
Start-NotifTask -Message $Message -MessageType $MessageType -Button1Text $Button1Text -Button1Action $OnClickAction -ButtonDismiss
|
||||
}
|
||||
catch {
|
||||
#Check failed - Just send notification
|
||||
$Message = $NotifLocale.local.outputs.output[7].message
|
||||
$MessageType = "error"
|
||||
Start-NotifTask $Title $Message $MessageType $Balise
|
||||
Start-NotifTask -Message $Message -MessageType $MessageType -Button1Text $Button1Text -Button1Action $OnClickAction -ButtonDismiss
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<#
|
||||
.SYNOPSIS
|
||||
Uninstall Winget-AutoUpdate
|
||||
Uninstall Winget-AutoUpdate
|
||||
|
||||
.DESCRIPTION
|
||||
Uninstall Winget-AutoUpdate (DEFAULT: clean old install)
|
||||
|
@ -36,7 +36,7 @@ try {
|
|||
Write-host "Uninstalling WAU..." -ForegroundColor Yellow
|
||||
#Get registry install location
|
||||
$InstallLocation = Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Winget-AutoUpdate\" -Name InstallLocation
|
||||
|
||||
|
||||
#Check if installed location exists and delete
|
||||
if (Test-Path ($InstallLocation)) {
|
||||
|
||||
|
@ -49,7 +49,7 @@ try {
|
|||
}
|
||||
Get-ScheduledTask -TaskName "Winget-AutoUpdate" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$False
|
||||
Get-ScheduledTask -TaskName "Winget-AutoUpdate-Notify" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$False
|
||||
Get-ScheduledTask -TaskName "Winget-AutoUpdate-UserContext" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$False
|
||||
Get-ScheduledTask -TaskName "Winget-AutoUpdate-UserContext" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$False
|
||||
& reg delete "HKCR\AppUserModelId\Windows.SystemToast.Winget.Notification" /f | Out-Null
|
||||
& reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Winget-AutoUpdate" /f | Out-Null
|
||||
if (Test-Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Winget-AutoUpdate") {
|
||||
|
@ -63,7 +63,7 @@ try {
|
|||
if ((Test-Path "${env:Public}\Desktop\WAU - Check for updated Apps.lnk")) {
|
||||
Remove-Item -Path "${env:Public}\Desktop\WAU - Check for updated Apps.lnk" -Force | Out-Null
|
||||
}
|
||||
|
||||
|
||||
Write-host "Uninstallation succeeded!" -ForegroundColor Green
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -10,14 +10,14 @@ if (!($NotifConf)) {
|
|||
#Load Assemblies
|
||||
[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] | Out-Null
|
||||
[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime] | Out-Null
|
||||
|
||||
|
||||
#Prepare XML
|
||||
$ToastXml = [Windows.Data.Xml.Dom.XmlDocument]::New()
|
||||
$ToastXml.LoadXml($NotifConf.OuterXml)
|
||||
|
||||
#Specify Launcher App ID
|
||||
$LauncherID = "Windows.SystemToast.Winget.Notification"
|
||||
|
||||
|
||||
#Prepare and Create Toast
|
||||
$ToastMessage = [Windows.UI.Notifications.ToastNotification]::New($ToastXML)
|
||||
$ToastMessage.Tag = $NotifConf.toast.tag
|
||||
|
|
|
@ -44,7 +44,7 @@ Write-Log "Notification Level: $($WAUConfig.WAU_NotificationLevel). Notification
|
|||
if (Test-Network) {
|
||||
#Check if Winget is installed and get Winget cmd
|
||||
$TestWinget = Get-WingetCmd
|
||||
|
||||
|
||||
if ($TestWinget) {
|
||||
#Get Current Version
|
||||
$WAUCurrentVersion = $WAUConfig.DisplayVersion
|
||||
|
@ -111,7 +111,7 @@ if (Test-Network) {
|
|||
$Log | Write-host
|
||||
$Log | out-file -filepath $LogFile -Append
|
||||
}
|
||||
|
||||
|
||||
#Count good update installations
|
||||
$Script:InstallOK = 0
|
||||
|
||||
|
@ -156,7 +156,7 @@ if (Test-Network) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($InstallOK -gt 0) {
|
||||
Write-Log "$InstallOK apps updated ! No more update." "Green"
|
||||
}
|
||||
|
|
|
@ -17,4 +17,4 @@ function Add-ScopeMachine ($SettingsPath) {
|
|||
}
|
||||
$ConfigFile | ConvertTo-Json | Out-File $SettingsPath -Encoding utf8 -Force
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,4 +9,4 @@ Function Get-AppInfo ($AppID) {
|
|||
|
||||
#Return Release Note
|
||||
return $ReleaseNote
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,5 +7,5 @@ function Get-ExcludedApps {
|
|||
return (Get-Content -Path "$WorkingDir\excluded_apps.txt").Trim() | Where-Object { $_.length -gt 0 }
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ function Get-IncludedApps {
|
|||
if (Test-Path "$WorkingDir\included_apps.txt") {
|
||||
|
||||
return (Get-Content -Path "$WorkingDir\included_apps.txt").Trim() | Where-Object { $_.length -gt 0 }
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
#Function to get locale file for Notification.
|
||||
|
||||
Function Get-NotifLocale {
|
||||
|
||||
|
||||
#Get OS locale
|
||||
$OSLocale = (Get-Culture).Parent
|
||||
|
||||
#Test if OS locale notif file exists
|
||||
$TestOSLocalPath = "$WorkingDir\locale\$($OSLocale.Name).xml"
|
||||
$TestOSLocalPath = "$WorkingDir\locale\$($OSLocale.Name).xml"
|
||||
|
||||
#Set OS Local if file exists
|
||||
if (Test-Path $TestOSLocalPath) {
|
||||
|
@ -25,4 +25,4 @@ Function Get-NotifLocale {
|
|||
#Rerturn langague display name
|
||||
Return $LocaleDisplayName
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,21 +4,21 @@ function Get-WAUAvailableVersion {
|
|||
|
||||
#Get Github latest version
|
||||
if ($WAUConfig.WAU_UpdatePrerelease -eq 1) {
|
||||
|
||||
|
||||
#Log
|
||||
Write-log "WAU AutoUpdate Pre-release versions is Enabled" "Cyan"
|
||||
|
||||
|
||||
#Get latest pre-release info
|
||||
$WAUurl = 'https://api.github.com/repos/Romanitho/Winget-AutoUpdate/releases'
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
|
||||
#Get latest stable info
|
||||
$WAUurl = 'https://api.github.com/repos/Romanitho/Winget-AutoUpdate/releases/latest'
|
||||
|
||||
|
||||
}
|
||||
|
||||
return ((Invoke-WebRequest $WAUurl -UseBasicParsing | ConvertFrom-Json)[0].tag_name).Replace("v", "")
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,8 +25,8 @@ function Get-WingetOutdatedApps {
|
|||
while (-not $lines[$fl].StartsWith("-----")) {
|
||||
$fl++
|
||||
}
|
||||
|
||||
#Get header line
|
||||
|
||||
#Get header line
|
||||
$fl = $fl - 1
|
||||
|
||||
#Get header titles
|
||||
|
@ -59,4 +59,4 @@ function Get-WingetOutdatedApps {
|
|||
}
|
||||
|
||||
return $upgradeList | Sort-Object { Get-Random }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#Function to make actions post WAU update
|
||||
|
||||
function Invoke-PostUpdateActions {
|
||||
|
||||
|
||||
#log
|
||||
Write-Log "Running Post Update actions..." "yellow"
|
||||
|
||||
|
@ -15,7 +15,7 @@ function Invoke-PostUpdateActions {
|
|||
#log
|
||||
Write-Log "-> Winget sources reseted." "green"
|
||||
}
|
||||
|
||||
|
||||
#Create WAU Regkey if not present
|
||||
$regPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Winget-AutoUpdate"
|
||||
if (!(test-path $regPath)) {
|
||||
|
@ -42,7 +42,7 @@ function Invoke-PostUpdateActions {
|
|||
#log
|
||||
Write-Log "-> Notification level setting was missing. Fixed with 'Full' option."
|
||||
}
|
||||
|
||||
|
||||
#Convert about.xml if exists (previous WAU versions) to reg
|
||||
$WAUAboutPath = "$WorkingDir\config\about.xml"
|
||||
if (test-path $WAUAboutPath) {
|
||||
|
@ -83,7 +83,7 @@ function Invoke-PostUpdateActions {
|
|||
foreach ($FileName in $FileNames) {
|
||||
if (Test-Path $FileName) {
|
||||
Remove-Item $FileName -Force -Confirm:$false
|
||||
|
||||
|
||||
#log
|
||||
Write-Log "-> $FileName removed." "green"
|
||||
}
|
||||
|
@ -97,5 +97,5 @@ function Invoke-PostUpdateActions {
|
|||
|
||||
#log
|
||||
Write-Log "Post Update actions finished" "green"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ function Start-Init {
|
|||
|
||||
#Logs initialisation
|
||||
$Script:LogFile = "$WorkingDir\logs\updates.log"
|
||||
|
||||
|
||||
if (!(Test-Path $LogFile)) {
|
||||
#Create file if doesn't exist
|
||||
New-Item -ItemType File -Path $LogFile -Force
|
||||
|
@ -30,4 +30,4 @@ function Start-Init {
|
|||
#Log file
|
||||
$Log | out-file -filepath $LogFile -Append
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,27 +1,135 @@
|
|||
#Function to send notifications to user
|
||||
|
||||
function Start-NotifTask ($Title, $Message, $MessageType, $Balise, $OnClickAction) {
|
||||
function Start-NotifTask {
|
||||
|
||||
param(
|
||||
[String]$Title = "Winget-AutoUpdate",
|
||||
[String]$Message,
|
||||
[String]$MessageType,
|
||||
[String]$Balise = "WAU",
|
||||
[String]$OnClickAction,
|
||||
[String]$Body,
|
||||
[String]$Button1Text,
|
||||
[String]$Button1Action,
|
||||
[Switch]$ButtonDismiss = $false
|
||||
)
|
||||
|
||||
if (($WAUConfig.WAU_NotificationLevel -eq "Full") -or ($WAUConfig.WAU_NotificationLevel -eq "SuccessOnly" -and $MessageType -eq "Success") -or ($UserRun)) {
|
||||
|
||||
#Prepare OnClickAction (if set)
|
||||
if ($OnClickAction) {
|
||||
$ToastOnClickAction = "activationType='protocol' launch='$OnClickAction'"
|
||||
# XML Toast template creation
|
||||
[xml]$ToastTemplate = New-Object system.Xml.XmlDocument
|
||||
$ToastTemplate.LoadXml("<?xml version=`"1.0`" encoding=`"utf-8`"?><toast></toast>")
|
||||
|
||||
# Creation of visual node
|
||||
$XMLvisual = $ToastTemplate.CreateElement("visual")
|
||||
|
||||
# Creation of a binding node
|
||||
$XMLbinding = $ToastTemplate.CreateElement("binding")
|
||||
$XMLvisual.AppendChild($XMLbinding) | Out-Null
|
||||
$XMLbindingAtt1 = ($ToastTemplate.CreateAttribute("template"))
|
||||
$XMLbindingAtt1.Value = "ToastGeneric"
|
||||
$XMLbinding.Attributes.Append($XMLbindingAtt1) | Out-Null
|
||||
|
||||
$XMLimagepath = "$WorkingDir\icons\$MessageType.png"
|
||||
if (Test-Path $XMLimagepath){
|
||||
# Creation of a image node
|
||||
$XMLimage = $ToastTemplate.CreateElement("image")
|
||||
$XMLbinding.AppendChild($XMLimage) | Out-Null
|
||||
$XMLimageAtt1 = $ToastTemplate.CreateAttribute("placement")
|
||||
$XMLimageAtt1.Value = "appLogoOverride"
|
||||
$XMLimage.Attributes.Append($XMLimageAtt1) | Out-Null
|
||||
$XMLimageAtt2 = $ToastTemplate.CreateAttribute("src")
|
||||
$XMLimageAtt2.Value = "$WorkingDir\icons\$MessageType.png"
|
||||
$XMLimage.Attributes.Append($XMLimageAtt2) | Out-Null
|
||||
}
|
||||
|
||||
#Add XML variables
|
||||
[xml]$ToastTemplate = @"
|
||||
<toast $ToastOnClickAction>
|
||||
<visual>
|
||||
<binding template="ToastImageAndText03">
|
||||
<text id="1">$Title</text>
|
||||
<text id="2">$Message</text>
|
||||
<image id="1" src="$WorkingDir\icons\$MessageType.png" />
|
||||
</binding>
|
||||
</visual>
|
||||
<tag>$Balise</tag>
|
||||
</toast>
|
||||
"@
|
||||
if ($Title){
|
||||
# Creation of a text node
|
||||
$XMLtitle = $ToastTemplate.CreateElement("text")
|
||||
$XMLtitleText = $ToastTemplate.CreateTextNode($Title)
|
||||
$XMLtitle.AppendChild($XMLtitleText) | Out-Null
|
||||
$XMLbinding.AppendChild($XMLtitle) | Out-Null
|
||||
}
|
||||
|
||||
if ($Message){
|
||||
# Creation of a text node
|
||||
$XMLtext = $ToastTemplate.CreateElement("text")
|
||||
$XMLtextText = $ToastTemplate.CreateTextNode($Message)
|
||||
$XMLtext.AppendChild($XMLtextText) | Out-Null
|
||||
$XMLbinding.AppendChild($XMLtext) | Out-Null
|
||||
}
|
||||
|
||||
if ($Body){
|
||||
# Creation of a group node
|
||||
$XMLgroup = $ToastTemplate.CreateElement("group")
|
||||
$XMLbinding.AppendChild($XMLgroup) | Out-Null
|
||||
|
||||
# Creation of a subgroup node
|
||||
$XMLsubgroup = $ToastTemplate.CreateElement("subgroup")
|
||||
$XMLgroup.AppendChild($XMLsubgroup) | Out-Null
|
||||
|
||||
# Creation of a text node
|
||||
$XMLcontent = $ToastTemplate.CreateElement("text")
|
||||
$XMLcontentText = $ToastTemplate.CreateTextNode($Body)
|
||||
$XMLcontent.AppendChild($XMLcontentText) | Out-Null
|
||||
$XMLsubgroup.AppendChild($XMLcontent) | Out-Null
|
||||
$XMLcontentAtt1 = $ToastTemplate.CreateAttribute("hint-style")
|
||||
$XMLcontentAtt1.Value = "body"
|
||||
$XMLcontent.Attributes.Append($XMLcontentAtt1) | Out-Null
|
||||
$XMLcontentAtt2 = $ToastTemplate.CreateAttribute("hint-wrap")
|
||||
$XMLcontentAtt2.Value = "true"
|
||||
$XMLcontent.Attributes.Append($XMLcontentAtt2) | Out-Null
|
||||
}
|
||||
|
||||
# Creation of actions node
|
||||
$XMLactions = $ToastTemplate.CreateElement("actions")
|
||||
|
||||
if ($Button1Text) {
|
||||
# Creation of action node
|
||||
$XMLaction = $ToastTemplate.CreateElement("action")
|
||||
$XMLactions.AppendChild($XMLaction) | Out-Null
|
||||
$XMLactionAtt1 = $ToastTemplate.CreateAttribute("content")
|
||||
$XMLactionAtt1.Value = $Button1Text
|
||||
$XMLaction.Attributes.Append($XMLactionAtt1) | Out-Null
|
||||
if ($Button1Action){
|
||||
$XMLactionAtt2 = $ToastTemplate.CreateAttribute("arguments")
|
||||
$XMLactionAtt2.Value = $Button1Action
|
||||
$XMLaction.Attributes.Append($XMLactionAtt2) | Out-Null
|
||||
$XMLactionAtt3 = $ToastTemplate.CreateAttribute("activationType")
|
||||
$XMLactionAtt3.Value = "Protocol"
|
||||
$XMLaction.Attributes.Append($XMLactionAtt3) | Out-Null
|
||||
}
|
||||
}
|
||||
|
||||
if ($ButtonDismiss) {
|
||||
# Creation of action node
|
||||
$XMLaction = $ToastTemplate.CreateElement("action")
|
||||
$XMLactions.AppendChild($XMLaction) | Out-Null
|
||||
$XMLactionAtt1 = $ToastTemplate.CreateAttribute("content")
|
||||
$XMLactionAtt1.Value = ""
|
||||
$XMLaction.Attributes.Append($XMLactionAtt1) | Out-Null
|
||||
$XMLactionAtt2 = $ToastTemplate.CreateAttribute("arguments")
|
||||
$XMLactionAtt2.Value = "dismiss"
|
||||
$XMLaction.Attributes.Append($XMLactionAtt2) | Out-Null
|
||||
$XMLactionAtt3 = $ToastTemplate.CreateAttribute("activationType")
|
||||
$XMLactionAtt3.Value = "system"
|
||||
$XMLaction.Attributes.Append($XMLactionAtt3) | Out-Null
|
||||
}
|
||||
|
||||
# Creation of tag node
|
||||
$XMLtag = $ToastTemplate.CreateElement("tag")
|
||||
$XMLtagText = $ToastTemplate.CreateTextNode($Balise)
|
||||
$XMLtag.AppendChild($XMLtagText) | Out-Null
|
||||
|
||||
# Add the visual node to the xml
|
||||
$ToastTemplate.LastChild.AppendChild($XMLvisual) | Out-Null
|
||||
$ToastTemplate.LastChild.AppendChild($XMLactions) | Out-Null
|
||||
$ToastTemplate.LastChild.AppendChild($XMLtag) | Out-Null
|
||||
|
||||
if ($OnClickAction){
|
||||
$ToastTemplate.toast.SetAttribute("activationType", "Protocol") | Out-Null
|
||||
$ToastTemplate.toast.SetAttribute("launch", $OnClickAction) | Out-Null
|
||||
}
|
||||
|
||||
#if not "Interactive" user, run as system
|
||||
if ($IsSystem) {
|
||||
|
@ -35,7 +143,7 @@ function Start-NotifTask ($Title, $Message, $MessageType, $Balise, $OnClickActio
|
|||
|
||||
#Run Notify scheduled task to notify conneted users
|
||||
Get-ScheduledTask -TaskName "Winget-AutoUpdate-Notify" -ErrorAction SilentlyContinue | Start-ScheduledTask -ErrorAction SilentlyContinue
|
||||
|
||||
|
||||
}
|
||||
#else, run as connected user
|
||||
else {
|
||||
|
@ -50,7 +158,7 @@ function Start-NotifTask ($Title, $Message, $MessageType, $Balise, $OnClickActio
|
|||
|
||||
#Specify Launcher App ID
|
||||
$LauncherID = "Windows.SystemToast.Winget.Notification"
|
||||
|
||||
|
||||
#Prepare and Create Toast
|
||||
$ToastMessage = [Windows.UI.Notifications.ToastNotification]::New($ToastXml)
|
||||
$ToastMessage.Tag = $ToastTemplate.toast.tag
|
||||
|
@ -63,4 +171,4 @@ function Start-NotifTask ($Title, $Message, $MessageType, $Balise, $OnClickActio
|
|||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,12 +55,15 @@ function Test-Network {
|
|||
|
||||
#Send Warning Notif if no connection for 5 min
|
||||
if ($timeout -eq 300) {
|
||||
#Log
|
||||
Write-Log "Notify 'No connection' sent." "Yellow"
|
||||
|
||||
#Notif
|
||||
$Title = $NotifLocale.local.outputs.output[0].title
|
||||
$Message = $NotifLocale.local.outputs.output[0].message
|
||||
$MessageType = "warning"
|
||||
$Balise = "connection"
|
||||
Start-NotifTask $Title $Message $MessageType $Balise
|
||||
$Balise = "Connection"
|
||||
Start-NotifTask -Title $Title -Message $Message -MessageType $MessageType -Balise $Balise
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -69,11 +72,14 @@ function Test-Network {
|
|||
|
||||
#Send Timeout Notif if no connection for 30 min
|
||||
Write-Log "Timeout. No internet connection !" "Red"
|
||||
|
||||
#Notif
|
||||
$Title = $NotifLocale.local.outputs.output[1].title
|
||||
$Message = $NotifLocale.local.outputs.output[1].message
|
||||
$MessageType = "error"
|
||||
$Balise = "connection"
|
||||
Start-NotifTask $Title $Message $MessageType $Balise
|
||||
$Balise = "Connection"
|
||||
Start-NotifTask -Title $Title -Message $Message -MessageType $MessageType -Balise $Balise
|
||||
|
||||
return $false
|
||||
|
||||
}
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
#Function to check if there's a Pending Reboot
|
||||
|
||||
function Test-PendingReboot {
|
||||
|
||||
|
||||
$Computer = $env:COMPUTERNAME
|
||||
$PendingReboot = $false
|
||||
|
||||
|
||||
$HKLM = [UInt32] "0x80000002"
|
||||
$WMI_Reg = [WMIClass] "\\$Computer\root\default:StdRegProv"
|
||||
|
||||
|
||||
if ($WMI_Reg) {
|
||||
if (($WMI_Reg.EnumKey($HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\")).sNames -contains 'RebootPending') { $PendingReboot = $true }
|
||||
if (($WMI_Reg.EnumKey($HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\")).sNames -contains 'RebootRequired') { $PendingReboot = $true }
|
||||
|
||||
|
||||
#Checking for SCCM namespace
|
||||
$SCCM_Namespace = Get-WmiObject -Namespace ROOT\CCM\ClientSDK -List -ComputerName $Computer -ErrorAction Ignore
|
||||
if ($SCCM_Namespace) {
|
||||
if (([WmiClass]"\\$Computer\ROOT\CCM\ClientSDK:CCM_ClientUtilities").DetermineIfRebootPending().RebootPending -eq $true) { $PendingReboot = $true }
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return $PendingReboot
|
||||
|
|
|
@ -3,7 +3,10 @@
|
|||
Function Update-App ($app) {
|
||||
|
||||
#Get App Info
|
||||
$OnClickAction = Get-AppInfo $app.Id
|
||||
$ReleaseNoteURL = Get-AppInfo $app.Id
|
||||
if ($ReleaseNoteURL){
|
||||
$Button1Text = $NotifLocale.local.outputs.output[10].message
|
||||
}
|
||||
|
||||
#Send available update notification
|
||||
Write-Log "Updating $($app.Name) from $($app.Version) to $($app.AvailableVersion)..." "Cyan"
|
||||
|
@ -11,11 +14,11 @@ Function Update-App ($app) {
|
|||
$Message = $NotifLocale.local.outputs.output[2].message -f $($app.Version), $($app.AvailableVersion)
|
||||
$MessageType = "info"
|
||||
$Balise = $($app.Name)
|
||||
Start-NotifTask $Title $Message $MessageType $Balise $OnClickAction
|
||||
Start-NotifTask -Title $Title -Message $Message -MessageType $MessageType -Balise $Balise -Button1Action $ReleaseNoteURL -Button1Text $Button1Text
|
||||
|
||||
#Winget upgrade
|
||||
Write-Log "########## WINGET UPGRADE PROCESS STARTS FOR APPLICATION ID '$($App.Id)' ##########" "Gray"
|
||||
|
||||
|
||||
#Run Winget Upgrade command
|
||||
Write-Log "-> Running: Winget upgrade --id $($app.Id) --accept-package-agreements --accept-source-agreements -h"
|
||||
& $Winget upgrade --id $($app.Id) --accept-package-agreements --accept-source-agreements -h | Tee-Object -file $LogFile -Append
|
||||
|
@ -28,7 +31,7 @@ Function Update-App ($app) {
|
|||
$FailedToUpgrade = $false
|
||||
foreach ($CheckApp in $CheckOutdated) {
|
||||
if ($($CheckApp.Id) -eq $($app.Id)) {
|
||||
|
||||
|
||||
#Upgrade failed!
|
||||
#Test for a Pending Reboot (Component Based Servicing/WindowsUpdate/CCM_ClientUtilities)
|
||||
$PendingReboot = Test-PendingReboot
|
||||
|
@ -37,7 +40,7 @@ Function Update-App ($app) {
|
|||
$FailedToUpgrade = $true
|
||||
break
|
||||
}
|
||||
|
||||
|
||||
#If app failed to upgrade, run Install command
|
||||
Write-Log "-> An upgrade for $($app.Name) failed, now trying an install instead..." "Yellow"
|
||||
Write-Log "-> Running: Winget install --id $($app.Id) --accept-package-agreements --accept-source-agreements -h"
|
||||
|
@ -71,36 +74,36 @@ Function Update-App ($app) {
|
|||
}
|
||||
}
|
||||
|
||||
Write-Log "########## WINGET UPGRADE PROCESS FINISHED FOR APPLICATION ID '$($App.Id)' ##########" "Gray"
|
||||
Write-Log "########## WINGET UPGRADE PROCESS FINISHED FOR APPLICATION ID '$($App.Id)' ##########" "Gray"
|
||||
|
||||
#Notify installation
|
||||
if ($FailedToUpgrade -eq $false) {
|
||||
if ($FailedToUpgrade -eq $false) {
|
||||
|
||||
#Send success updated app notification
|
||||
Write-Log "$($app.Name) updated to $($app.AvailableVersion) !" "Green"
|
||||
|
||||
|
||||
#Send Notif
|
||||
$Title = $NotifLocale.local.outputs.output[3].title -f $($app.Name)
|
||||
$Message = $NotifLocale.local.outputs.output[3].message -f $($app.AvailableVersion)
|
||||
$MessageType = "success"
|
||||
$Balise = $($app.Name)
|
||||
Start-NotifTask $Title $Message $MessageType $Balise $OnClickAction
|
||||
Start-NotifTask -Title $Title -Message $Message -MessageType $MessageType -Balise $Balise -Button1Action $ReleaseNoteURL -Button1Text $Button1Text
|
||||
|
||||
$Script:InstallOK += 1
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
#Send failed updated app notification
|
||||
Write-Log "$($app.Name) update failed." "Red"
|
||||
|
||||
|
||||
#Send Notif
|
||||
$Title = $NotifLocale.local.outputs.output[4].title -f $($app.Name)
|
||||
$Message = $NotifLocale.local.outputs.output[4].message
|
||||
$MessageType = "error"
|
||||
$Balise = $($app.Name)
|
||||
Start-NotifTask $Title $Message $MessageType $Balise $OnClickAction
|
||||
|
||||
Start-NotifTask -Title $Title -Message $Message -MessageType $MessageType -Balise $Balise -Button1Action $ReleaseNoteURL -Button1Text $Button1Text
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -3,22 +3,22 @@
|
|||
function Update-WAU {
|
||||
|
||||
$OnClickAction = "https://github.com/Romanitho/Winget-AutoUpdate/releases"
|
||||
$Button1Text = $NotifLocale.local.outputs.output[10].message
|
||||
|
||||
#Send available update notification
|
||||
$Title = $NotifLocale.local.outputs.output[2].title -f "Winget-AutoUpdate"
|
||||
$Message = $NotifLocale.local.outputs.output[2].message -f $WAUCurrentVersion, $WAUAvailableVersion
|
||||
$MessageType = "info"
|
||||
$Balise = "Winget-AutoUpdate"
|
||||
Start-NotifTask $Title $Message $MessageType $Balise $OnClickAction
|
||||
Start-NotifTask -Title $Title -Message $Message -MessageType $MessageType -Button1Action $OnClickAction -Button1Text $Button1Text
|
||||
|
||||
#Run WAU update
|
||||
try {
|
||||
|
||||
#Force to create a zip file
|
||||
#Force to create a zip file
|
||||
$ZipFile = "$WorkingDir\WAU_update.zip"
|
||||
New-Item $ZipFile -ItemType File -Force | Out-Null
|
||||
|
||||
#Download the zip
|
||||
#Download the zip
|
||||
Write-Log "Downloading the GitHub Repository version $WAUAvailableVersion" "Cyan"
|
||||
Invoke-RestMethod -Uri "https://github.com/Romanitho/Winget-AutoUpdate/archive/refs/tags/v$($WAUAvailableVersion).zip/" -OutFile $ZipFile
|
||||
|
||||
|
@ -27,14 +27,14 @@ function Update-WAU {
|
|||
$location = "$WorkingDir\WAU_update"
|
||||
Expand-Archive -Path $ZipFile -DestinationPath $location -Force
|
||||
Get-ChildItem -Path $location -Recurse | Unblock-File
|
||||
|
||||
|
||||
#Update scritps
|
||||
Write-Log "Updating WAU" "Yellow"
|
||||
$TempPath = (Resolve-Path "$location\*\Winget-AutoUpdate\")[0].Path
|
||||
if ($TempPath) {
|
||||
Copy-Item -Path "$TempPath\*" -Destination "$WorkingDir\" -Exclude "icons" -Recurse -Force
|
||||
}
|
||||
|
||||
|
||||
#Remove update zip file and update temp folder
|
||||
Write-Log "Done. Cleaning temp files" "Cyan"
|
||||
Remove-Item -Path $ZipFile -Force -ErrorAction SilentlyContinue
|
||||
|
@ -53,8 +53,7 @@ function Update-WAU {
|
|||
$Title = $NotifLocale.local.outputs.output[3].title -f "Winget-AutoUpdate"
|
||||
$Message = $NotifLocale.local.outputs.output[3].message -f $WAUAvailableVersion
|
||||
$MessageType = "success"
|
||||
$Balise = "Winget-AutoUpdate"
|
||||
Start-NotifTask $Title $Message $MessageType $Balise $OnClickAction
|
||||
Start-NotifTask -Title $Title -Message $Message -MessageType $MessageType -Button1Action $OnClickAction -Button1Text $Button1Text
|
||||
|
||||
#Rerun with newer version
|
||||
Write-Log "Re-run WAU"
|
||||
|
@ -65,15 +64,14 @@ function Update-WAU {
|
|||
}
|
||||
|
||||
catch {
|
||||
|
||||
|
||||
#Send Error Notif
|
||||
$Title = $NotifLocale.local.outputs.output[4].title -f "Winget-AutoUpdate"
|
||||
$Message = $NotifLocale.local.outputs.output[4].message
|
||||
$MessageType = "error"
|
||||
$Balise = "Winget-AutoUpdate"
|
||||
Start-NotifTask $Title $Message $MessageType $Balise $OnClickAction
|
||||
Start-NotifTask -Title $Title -Message $Message -MessageType $MessageType -Button1Action $OnClickAction -Button1Text $Button1Text
|
||||
Write-Log "WAU Update failed" "Red"
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
#Write Log Function
|
||||
|
||||
function Write-Log ($LogMsg, $LogColor = "White") {
|
||||
|
||||
|
||||
#Get log
|
||||
$Log = "$(Get-Date -UFormat "%T") - $LogMsg"
|
||||
|
||||
|
@ -11,4 +11,4 @@ function Write-Log ($LogMsg, $LogColor = "White") {
|
|||
#Write log to file
|
||||
$Log | Out-File -FilePath $LogFile -Append
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,6 +49,13 @@
|
|||
<output id="9">
|
||||
<!--Manual check for updated apps completed-->
|
||||
<message>Die manuelle suche nach Updates wurde abgeschlossen.</message>
|
||||
<output id="10">
|
||||
<!--See changelog-->
|
||||
<message>See changelog</message>
|
||||
</output>
|
||||
<output id="11">
|
||||
<!--Open log file-->
|
||||
<message>Open log file</message>
|
||||
</output>
|
||||
</outputs>
|
||||
</local>
|
||||
|
|
|
@ -50,5 +50,13 @@
|
|||
<!--Manual check for updated apps completed-->
|
||||
<message>Manual check for updated apps completed...</message>
|
||||
</output>
|
||||
<output id="10">
|
||||
<!--See changelog-->
|
||||
<message>See changelog</message>
|
||||
</output>
|
||||
<output id="11">
|
||||
<!--Open log file-->
|
||||
<message>Open log file</message>
|
||||
</output>
|
||||
</outputs>
|
||||
</local>
|
||||
|
|
|
@ -50,5 +50,13 @@
|
|||
<!--Manual check for updated apps completed-->
|
||||
<message>Manual check for updated apps completed...</message>
|
||||
</output>
|
||||
<output id="10">
|
||||
<!--See changelog-->
|
||||
<message>See changelog</message>
|
||||
</output>
|
||||
<output id="11">
|
||||
<!--Open log file-->
|
||||
<message>Open log file</message>
|
||||
</output>
|
||||
</outputs>
|
||||
</local>
|
||||
|
|
|
@ -50,5 +50,13 @@
|
|||
<!--Manual check for updated apps completed-->
|
||||
<message>Manual check for updated apps completed...</message>
|
||||
</output>
|
||||
<output id="10">
|
||||
<!--See changelog-->
|
||||
<message>See changelog</message>
|
||||
</output>
|
||||
<output id="11">
|
||||
<!--Open log file-->
|
||||
<message>Open log file</message>
|
||||
</output>
|
||||
</outputs>
|
||||
</local>
|
||||
|
|
|
@ -50,5 +50,13 @@
|
|||
<!--Manual check for updated apps completed-->
|
||||
<message>Recherche de mises à jour terminée.</message>
|
||||
</output>
|
||||
<output id="10">
|
||||
<!--See changelog-->
|
||||
<message>Consulter le journal des modifications</message>
|
||||
</output>
|
||||
<output id="11">
|
||||
<!--Open log file-->
|
||||
<message>Ouvrir le fichier log</message>
|
||||
</output>
|
||||
</outputs>
|
||||
</local>
|
||||
|
|
|
@ -50,5 +50,13 @@
|
|||
<!--Manual check for updated apps completed-->
|
||||
<message>A frissített alkalmazások kézi ellenőrzése befejeződött...</message>
|
||||
</output>
|
||||
<output id="10">
|
||||
<!--See changelog-->
|
||||
<message>See changelog</message>
|
||||
</output>
|
||||
<output id="11">
|
||||
<!--Open log file-->
|
||||
<message>Open log file</message>
|
||||
</output>
|
||||
</outputs>
|
||||
</local>
|
||||
|
|
|
@ -50,5 +50,13 @@
|
|||
<!--Manual check for updated apps completed-->
|
||||
<message>Manual check for updated apps completed...</message>
|
||||
</output>
|
||||
<output id="10">
|
||||
<!--See changelog-->
|
||||
<message>See changelog</message>
|
||||
</output>
|
||||
<output id="11">
|
||||
<!--Open log file-->
|
||||
<message>Open log file</message>
|
||||
</output>
|
||||
</outputs>
|
||||
</local>
|
||||
|
|
|
@ -50,5 +50,13 @@
|
|||
<!--Manual check for updated apps completed-->
|
||||
<message>Manual check for updated apps completed...</message>
|
||||
</output>
|
||||
<output id="10">
|
||||
<!--See changelog-->
|
||||
<message>See changelog</message>
|
||||
</output>
|
||||
<output id="11">
|
||||
<!--Open log file-->
|
||||
<message>Open log file</message>
|
||||
</output>
|
||||
</outputs>
|
||||
</local>
|
||||
|
|
|
@ -50,5 +50,13 @@
|
|||
<!--Manual check for updated apps completed-->
|
||||
<message>Manual check for updated apps completed...</message>
|
||||
</output>
|
||||
<output id="10">
|
||||
<!--See changelog-->
|
||||
<message>See changelog</message>
|
||||
</output>
|
||||
<output id="11">
|
||||
<!--Open log file-->
|
||||
<message>Open log file</message>
|
||||
</output>
|
||||
</outputs>
|
||||
</local>
|
||||
|
|
|
@ -50,5 +50,13 @@
|
|||
<!--Manual check for updated apps completed-->
|
||||
<message>Manuell koll efter uppdaterade appar slutförd...</message>
|
||||
</output>
|
||||
<output id="10">
|
||||
<!--See changelog-->
|
||||
<message>See changelog</message>
|
||||
</output>
|
||||
<output id="11">
|
||||
<!--Open log file-->
|
||||
<message>Open log file</message>
|
||||
</output>
|
||||
</outputs>
|
||||
</local>
|
||||
|
|
Loading…
Reference in New Issue