winfsp/tools/fix162.bat
Bill Zissimopoulos 00d4aba946 github: winfsp org
2022-03-02 18:01:21 +00:00

52 lines
1.4 KiB
Batchfile

@echo off
REM This script is used to fix GitHub issue #162:
REM https://github.com/winfsp/winfsp/issues/162
REM
REM It works as follows:
REM
REM - Creates a junction called `amd64` inside the `WinFsp\bin` directory
REM that points back to the directory.
REM
REM - Updates the registry `ProviderPath` of the WinFsp Network Provider to
REM point to `...\bin\%PROCESSOR_ARCHITECTURE%\winfsp-x64.dll`.
REM
REM It requires Administrator privileges in order to run.
setlocal
setlocal EnableDelayedExpansion
set RegKey="HKLM\SOFTWARE\WinFsp"
set RegVal="InstallDir"
reg query !RegKey! /v !RegVal! /reg:32 >nul 2>&1
if !ERRORLEVEL! equ 0 (
for /f "tokens=2,*" %%i in ('reg query !RegKey! /v !RegVal! /reg:32 ^| findstr !RegVal!') do (
set InstallDir=%%j
)
)
if not exist "!InstallDir!" (echo cannot find WinFsp installation >&2 & goto fail)
set RegKey="HKLM\SYSTEM\CurrentControlSet\Services\WinFsp.Np\NetworkProvider"
set RegVal="ProviderPath"
if not X%1==X-u (
echo fix #162
if not exist "!InstallDir!bin\amd64" mklink /j "!InstallDir!bin\amd64" "!InstallDir!bin"
reg add !RegKey! /v !RegVal! /t REG_EXPAND_SZ /d "!InstallDir!bin\%%PROCESSOR_ARCHITECTURE%%\winfsp-x64.dll" /f
) else (
echo undo fix #162
if exist "!InstallDir!bin\amd64" rmdir "!InstallDir!bin\amd64"
reg add !RegKey! /v !RegVal! /t REG_SZ /d "!InstallDir!bin\winfsp-x64.dll" /f
)
exit /b 0
:fail
exit /b 1