diff --git a/README.md b/README.md
index 0db8ac2..8377d6a 100644
--- a/README.md
+++ b/README.md
@@ -88,6 +88,9 @@ Use White List instead of Black List. This setting will not create the "excluded
**-ListPath**
Get Black/White List from Path (URL/UNC/Local) (copy/download to Winget-AutoUpdate installation location if external list is newer).
+**-InstallUserContext**
+Install WAU with system and **user** context executions (From version 1.15.3)
+
**-BypassListForUsers**
Bypass Black/White list when run in user context (From version 1.15.0)
diff --git a/Winget-AutoUpdate/functions/Get-WingetCmd.ps1 b/Winget-AutoUpdate/functions/Get-WingetCmd.ps1
index b92b467..0dddf0a 100644
--- a/Winget-AutoUpdate/functions/Get-WingetCmd.ps1
+++ b/Winget-AutoUpdate/functions/Get-WingetCmd.ps1
@@ -3,7 +3,9 @@
Function Get-WingetCmd {
#Get WinGet Path (if admin context)
- $ResolveWingetPath = Resolve-Path "$env:ProgramFiles\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__8wekyb3d8bbwe" | Sort-Object { [version]($_.Path -replace '^[^\d]+_((\d+\.)*\d+)_.*', '$1') }
+ # Includes Workaround for ARM64 (removed X64 and replaces it with a wildcard)
+ $ResolveWingetPath = Resolve-Path "$env:ProgramFiles\WindowsApps\Microsoft.DesktopAppInstaller_*_*__8wekyb3d8bbwe" | Sort-Object { [version]($_.Path -replace '^[^\d]+_((\d+\.)*\d+)_.*', '$1') }
+
if ($ResolveWingetPath) {
#If multiple version, pick last one
$WingetPath = $ResolveWingetPath[-1].Path
@@ -29,7 +31,7 @@ Function Get-WingetCmd {
#Log Winget installed version
$WingetVer = & $Winget --version
Write-Log "Winget Version: $WingetVer"
-
+
return $true
}
diff --git a/Winget-AutoUpdate/functions/Test-Network.ps1 b/Winget-AutoUpdate/functions/Test-Network.ps1
index 459e6bf..9d326e3 100644
--- a/Winget-AutoUpdate/functions/Test-Network.ps1
+++ b/Winget-AutoUpdate/functions/Test-Network.ps1
@@ -1,55 +1,58 @@
#Function to check connectivity
function Test-Network {
-
+
#Init
$timeout = 0
+ # Workaround for ARM64 (Access Denied / Win32 internal Server error)
+ $ProgressPreference = 'SilentlyContinue'
+
#Test connectivity during 30 min then timeout
Write-Log "Checking internet connection..." "Yellow"
While ($timeout -lt 1800) {
$URLtoTest = "https://raw.githubusercontent.com/Romanitho/Winget-AutoUpdate/main/LICENSE"
$URLcontent = ((Invoke-WebRequest -URI $URLtoTest -UseBasicParsing).content)
-
+
if ($URLcontent -like "*MIT License*") {
-
+
Write-Log "Connected !" "Green"
#Check for metered connection
[void][Windows.Networking.Connectivity.NetworkInformation, Windows, ContentType = WindowsRuntime]
$cost = [Windows.Networking.Connectivity.NetworkInformation]::GetInternetConnectionProfile().GetConnectionCost()
-
+
if ($cost.ApproachingDataLimit -or $cost.OverDataLimit -or $cost.Roaming -or $cost.BackgroundDataUsageRestricted -or ($cost.NetworkCostType -ne "Unrestricted")) {
-
+
Write-Log "Metered connection detected." "Yellow"
-
+
if ($WAUConfig.WAU_DoNotRunOnMetered -eq 1) {
-
+
Write-Log "WAU is configured to bypass update checking on metered connection"
return $false
-
+
}
else {
-
+
Write-Log "WAU is configured to force update checking on metered connection"
return $true
-
+
}
-
+
}
else {
return $true
}
-
+
}
else {
Start-Sleep 10
$timeout += 10
-
+
#Send Warning Notif if no connection for 5 min
if ($timeout -eq 300) {
Write-Log "Notify 'No connection' sent." "Yellow"
@@ -59,11 +62,11 @@ function Test-Network {
$Balise = "connection"
Start-NotifTask $Title $Message $MessageType $Balise
}
-
+
}
-
+
}
-
+
#Send Timeout Notif if no connection for 30 min
Write-Log "Timeout. No internet connection !" "Red"
$Title = $NotifLocale.local.outputs.output[1].title
diff --git a/Winget-AutoUpdate/locale/de.xml b/Winget-AutoUpdate/locale/de.xml
index 50e79a9..02a0070 100644
--- a/Winget-AutoUpdate/locale/de.xml
+++ b/Winget-AutoUpdate/locale/de.xml
@@ -32,23 +32,23 @@