diff --git a/dist/win/contrib/patchHosts.ps1 b/dist/win/contrib/patchHosts.ps1 deleted file mode 100644 index bab50cc63..000000000 --- a/dist/win/contrib/patchHosts.ps1 +++ /dev/null @@ -1,16 +0,0 @@ -#Requires -RunAsAdministrator - -$sysdir = [Environment]::SystemDirectory -$hostsFile = "$sysdir\drivers\etc\hosts" -$aliasLine = '127.0.0.1 cryptomator-vault' - -foreach ($line in Get-Content $hostsFile) { - if ($line -eq $aliasLine){ - Write-Output 'No changes necessary' - exit 0 - } -} - -Add-Content -Path $hostsFile -Encoding ascii -Value "`r`n$aliasLine" -Write-Output 'Added alias to hosts file' -exit 0 diff --git a/dist/win/contrib/patchHosts.bat b/dist/win/contrib/patchWebDAV.bat similarity index 75% rename from dist/win/contrib/patchHosts.bat rename to dist/win/contrib/patchWebDAV.bat index 6363b3e33..e31249831 100644 --- a/dist/win/contrib/patchHosts.bat +++ b/dist/win/contrib/patchWebDAV.bat @@ -1,3 +1,3 @@ @echo off cd %~dp0 -powershell -NoLogo -NonInteractive -ExecutionPolicy Unrestricted -Command .\patchHosts.ps1 \ No newline at end of file +powershell -NoLogo -NonInteractive -ExecutionPolicy Unrestricted -Command .\patchWebDAV.ps1 \ No newline at end of file diff --git a/dist/win/contrib/patchWebDAV.ps1 b/dist/win/contrib/patchWebDAV.ps1 new file mode 100644 index 000000000..51b063560 --- /dev/null +++ b/dist/win/contrib/patchWebDAV.ps1 @@ -0,0 +1,61 @@ +#Requires -RunAsAdministrator + +# Adds for address 127.0.0.1 the 'cryptomator-vault' alias to the hosts file +function Add-AliasToHost { + $sysdir = [Environment]::SystemDirectory + $hostsFile = "$sysdir\drivers\etc\hosts" + $aliasLine = '127.0.0.1 cryptomator-vault' + + foreach ($line in Get-Content $hostsFile) { + if ($line -eq $aliasLine){ + return + } + } + + Add-Content -Path $hostsFile -Encoding ascii -Value "`r`n$aliasLine" +} + + +# Sets in the registry the webclient file size limit to the maximum value +function Set-WebDAVFileSizeLimit { + # Set variables to indicate value and key to set + $RegistryPath = 'HKLM:\SYSTEM\CurrentControlSet\Services\WebClient\Parameters' + $Name = 'FileSizeLimitInBytes' + $Value = '0xffffffff' + + # Create the key if it does not exist + If (-NOT (Test-Path $RegistryPath)) { + New-Item -Path $RegistryPath -Force | Out-Null + } + + # Now set the value + New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType DWORD -Force | Out-Null +} + + +# Changes the network provider order such that the builtin Windows webclient is always first +function Edit-ProviderOrder { + $RegistryPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\NetworkProvider\HwOrder' + $Name = 'ProviderOrder' + $WebClientString = 'webclient' + + $CurrentOrder = (Get-ItemProperty $RegistryPath $Name).$Name + + $OrderWithoutWebclientArray = $CurrentOrder -split ',' | Where-Object {$_ -ne $WebClientString} + $WebClientArray = @($WebClientString) + + $UpdatedOrder = ($WebClientArray + $OrderWithoutWebclientArray) -join "," + New-ItemProperty -Path $RegistryPath -Name $Name -Value $UpdatedOrder -PropertyType String -Force | Out-Null +} + + +Add-AliasToHost +Write-Output 'Ensured alias exists in hosts file' + +Set-WebDAVFileSizeLimit +Write-Output 'Set WebDAV file size limit' + +Edit-ProviderOrder +Write-Output 'Ensured correct provider order' + +exit 0 diff --git a/dist/win/resources/main.wxs b/dist/win/resources/main.wxs index 8a0123a57..4954e1ea8 100644 --- a/dist/win/resources/main.wxs +++ b/dist/win/resources/main.wxs @@ -124,7 +124,8 @@ - + + @@ -156,7 +157,7 @@ - NOT Installed OR REINSTALL + NOT Installed OR REINSTALL