Ever wanted your remote storage to perform like a local NVMe drive on your Windows system? This guide will show you several approaches to optimize remote storage performance on Windows 10/11, with benchmark-proven results.

Table of Contents

Before You Begin

Which Method Should You Choose?

  • Method 1 (Rclone): Best for most users, works with almost any remote storage
  • Method 2 (SMB): Ideal if your storage already supports SMB/CIFS
  • Method 3 (WireGuard): Best performance but requires technical knowledge
  • Method 4 (Hybrid): Best real performance using local disk with background sync

System Requirements

  • Windows 10 or 11 (fully updated)
  • At least 10GB free space on a local SSD/NVMe drive for caching
  • Stable internet connection (minimum 10Mbps upload/download)
  • Administrator access to your Windows system

Backup Your Data First!

⚠️ IMPORTANT: Before proceeding with any method, back up your important data. While these methods are safe when followed correctly, mistakes can happen.

Method 1: Optimized Rclone Caching

This method uses Rclone (a command-line program to sync files) with fine-tuned parameters for maximum performance on Windows.

Prerequisites

  • Remote storage with SFTP access (most cloud/NAS systems support this)
  • 10GB+ free local disk space for caching
  • Rclone for Windows (program to access remote storage)
  • WinFsp (allows mounting remote storage as a drive)

Setup

  1. Install required software
  • Download and install Rclone from https://rclone.org/downloads/
    • Accept all defaults during installation
    • Test installation: Open Command Prompt and type rclone version - you should see version information
  • Download and install WinFsp from https://winfsp.dev/rel/
    • Download the latest stable release .msi file
    • Accept all defaults during installation
  • Restart your computer after installing WinFsp (this is mandatory)
  1. Create necessary directories Open Command Prompt as administrator (right-click Start > Command Prompt (Admin)) and run:
   if not exist "C:\RemoteStorage" mkdir C:\RemoteStorage
   if not exist "C:\RemoteCache" mkdir C:\RemoteCache
   if not exist "C:\Scripts" mkdir C:\Scripts
  1. Configure rclone Open Command Prompt and run:
   rclone config

Follow these steps:

  • Type n for new remote
  • Name: storage-sftp (type exactly this)
  • Storage type: Type sftp and press Enter
  • Host: Enter your storage server IP address or hostname
  • User: Enter your username
  • Port: Enter SSH port (usually 22)
  • Password: Enter your password (or leave blank and use y if you want to use key authentication) For the remaining options, press Enter to accept defaults until configuration is complete. Test your configuration by running:
   rclone lsd storage-sftp:/

This should list directories on your remote storage. If you see an error, double-check your credentials.

  1. Create mount script Create a batch file by opening Notepad and pasting the following:
   @echo off
   echo Starting Rclone mount...

   REM Check if already mounted
   if exist C:\RemoteStorage\* (
     echo Drive appears to be already mounted.
     goto :eof
   )

   REM Ensure directories exist
   if not exist "C:\RemoteStorage" mkdir C:\RemoteStorage
   if not exist "C:\RemoteCache" mkdir C:\RemoteCache

   REM Mount the drive
   start /min rclone mount storage-sftp:/remote/path C:\RemoteStorage ^
       --dir-cache-time 72h ^
       --cache-dir=C:\RemoteCache ^
       --vfs-cache-mode full ^
       --vfs-cache-max-size 10G ^
       --buffer-size 256M ^
       --vfs-read-ahead 512M ^
       --vfs-read-chunk-size 128M ^
       --vfs-read-chunk-size-limit 1G ^
       --transfers 4 ^
       --checkers 8 ^
       --contimeout 60s ^
       --timeout 300s ^
       --low-level-retries 10 ^
       --volname "Remote Storage"

   echo Waiting for mount to initialize...
   timeout /t 5

   REM Verify mount was successful
   if exist C:\RemoteStorage\* (
     echo Mount successful! Your remote storage is now available at C:\RemoteStorage
   ) else (
     echo Mount appears to have failed. Check for errors above.
   )

Save this file as C:\Scripts\mount-remote.bat

⚠️ IMPORTANT: Replace /remote/path with the actual path on your remote server.

  1. Test the mount script Right-click on C:\Scripts\mount-remote.bat and select "Run as administrator". After it runs, check if your remote storage is accessible by opening File Explorer and navigating to C:\RemoteStorage. You should see your remote files.
  2. Create unmount script (optional but recommended) Create another batch file with Notepad:
   @echo off
   echo Unmounting remote storage...

   taskkill /f /im rclone.exe

   echo Waiting for unmount to complete...
   timeout /t 3

   if not exist C:\RemoteStorage\* (
     echo Unmount successful!
   ) else (
     echo Unmount may have failed. If issues persist, restart your computer.
   )

Save this file as C:\Scripts\unmount-remote.bat

  1. Set up automatic mounting at startup Create a shortcut to the batch file in the Windows Startup folder:
  • Press Win+R and type shell:startup then press Enter
  • Right-click in the folder and select "New > Shortcut"
  • For the location, enter: C:\Scripts\mount-remote.bat
  • Name the shortcut "Remote Storage Mount"
  • Right-click the new shortcut, select "Properties"
  • In the "Run" dropdown, select "Minimized"
  • Under the "Advanced" button, check "Run as administrator"
  • Click OK, then OK again

Method 2: SMB with Local Caching

This method optimizes Windows' native SMB protocol with local caching for better performance.

Prerequisites

  • Remote storage with SMB support (most NAS devices and Windows servers)
  • Administrator privileges on your Windows system
  • At least 10GB free space on an SSD/NVMe drive for caching

Setup

  1. Enable required Windows features Press Win+R, type control panel and press Enter. Then:
  • Go to Programs > Programs and Features
  • Click "Turn Windows features on or off"
  • Check "SMB 1.0/CIFS File Sharing Support" and "Offline Files"
  • Click OK
  • Restart your computer when prompted
  1. Create registry optimization file Open Notepad and paste exactly the following:
   Windows Registry Editor Version 5.00

   [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters]
   "DirectoryCacheLifetime"=dword:00000000
   "FileInfoCacheLifetime"=dword:00000000
   "FileNotFoundCacheLifetime"=dword:00000000
   "DormantFileLimit"=dword:00000000
   "BufferNamedPipes"=dword:00000001
   "MaxThreads"=dword:00000064
   "MaxCmds"=dword:00000800
   "MaxCollectionCount"=dword:00000060
   "KeepConn"=dword:00007530
   "BufFilesDenyWrite"=dword:00000000
   "EnableByteRangeLockingOnReadOnlyFiles"=dword:00000001
   "ReadAheadThroughput"=dword:ffffffff
   "UseOpportunisticLocking"=dword:00000001
   "UseLockReadUnlock"=dword:00000001

   [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkProvider]
   "HardConnectOnly"=dword:00000000

   [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\NetCache]
   "SyncAtLogon"=dword:00000000
   "SilentForceSynchronousTransfers"=dword:00000000
   "SilentDeleteActions"=dword:00000000

Save this file as C:\Scripts\optimize-smb.reg

Apply the registry changes:

  • Right-click on C:\Scripts\optimize-smb.reg
  • Select "Merge"
  • Confirm the User Account Control prompt
  • Click "Yes" to confirm adding the information to the registry
  1. Map the network drive with robust error handling Create a batch file with Notepad:
   @echo off
   echo Mapping network drive...

   REM Check if already mapped
   net use | findstr "Z:" > nul
   if %errorlevel% equ 0 (
     echo Drive Z: is already mapped. Unmapping first...
     net use Z: /delete /y
     timeout /t 2
   )

   REM Map the drive
   echo Mapping Z: to your remote storage...
   net use Z: \\SERVER\SHARE /persistent:yes /user:USERNAME PASSWORD

   REM Verify mapping was successful
   net use | findstr "Z:" > nul
   if %errorlevel% equ 0 (
     echo Drive mapping successful! Your remote storage is now available at Z:
   ) else (
     echo Drive mapping failed. Please check your server address and credentials.
     pause
     exit
   )

Save as C:\Scripts\map-network-drive.bat

⚠️ IMPORTANT: Replace the following with your actual information:

  • Replace \\SERVER\SHARE with your actual server and share name
  • Replace USERNAME with your username
  • Replace PASSWORD with your password Test the script: Right-click on C:\Scripts\map-network-drive.bat and select "Run as administrator".
  1. Configure Offline Files for the mapped drive
  • Open File Explorer and navigate to the Z: drive
  • Right-click on it and select "Always available offline"
  • Wait for the initial sync to complete (this may take time depending on your data size)
  1. Optimize offline files settings
  • Press Win+R, type control panel and press Enter
  • Go to Sync Center > Manage offline files
  • Click "Disk Usage" and move the slider to allocate at least 10GB
  • Click on the "Encryption" tab and select "Encrypt offline files" for security
  • On the Advanced tab, select "All files and programs that users open from the network"
  • Click OK to apply changes
  1. Create automatic sync script Create a new file in Notepad:
   # Force synchronization of all offline files
   try {
     $objOfflineFiles = New-Object -ComObject HNetCfg.HNetShare
     $syncResult = $objOfflineFiles.SyncMappedDrives()

     if ($syncResult -eq $true) {
       Write-Host "Synchronization successful."
     } else {
       Write-Host "Synchronization may have failed."
     }
   } catch {
     Write-Host "Error during synchronization: $_"
   }

Save this file as C:\Scripts\sync-offline-files.ps1

  1. Schedule automatic syncing Create a batch file to run the PowerShell script:
   @echo off
   powershell -ExecutionPolicy Bypass -File "C:\Scripts\sync-offline-files.ps1"

Save this as C:\Scripts\run-sync.bat

Set up a scheduled task:

  • Press Win+R, type taskschd.msc and press Enter
  • Click "Create Basic Task" in the right panel
  • Name: "Sync Offline Files"
  • Trigger: Daily, repeat every 30 minutes for a duration of 1 day
  • Action: Start a program
  • Program/script: C:\Scripts\run-sync.bat
  • Finish the wizard

Method 3: WireGuard + Advanced I/O

⚠️ WARNING: This is the most advanced method and requires technical knowledge of networking. Only proceed if you're comfortable with both Windows and Linux systems.

Prerequisites

  • Control over both the client and remote server
  • Remote server running Linux/Unix with root access
  • WireGuard for Windows
  • Administrator privileges on Windows

Setup

  1. Install WireGuard on both systems On Windows:
  • Download and install WireGuard from wireguard.com/install
  • Accept all defaults during installation On Linux server (example for Ubuntu/Debian):
   sudo apt update
   sudo apt install wireguard
  1. Generate keys on Windows system Create this PowerShell script in Notepad:
   # Create directories
   New-Item -Path "C:\WireGuard\keys" -ItemType Directory -Force

   # Download WireGuard tools
   $toolsUrl = "https://download.wireguard.com/windows-client/wireguard-tools-windows-amd64-0.5.3.zip"
   $toolsZip = "C:\WireGuard\wireguard-tools.zip"

   # Use built-in WebClient for compatibility
   $webClient = New-Object System.Net.WebClient
   $webClient.DownloadFile($toolsUrl, $toolsZip)

   # Extract the zip file
   Expand-Archive -Path $toolsZip -DestinationPath "C:\WireGuard\keys" -Force

   # Navigate to tools directory
   Set-Location -Path "C:\WireGuard\keys"

   # Generate private key
   $privateKey = & ".\wireguard.exe" genkey
   $privateKey | Out-File -FilePath "local-private.key" -Encoding ASCII

   # Generate public key from private key
   $publicKey = $privateKey | & ".\wireguard.exe" pubkey
   $publicKey | Out-File -FilePath "local-public.key" -Encoding ASCII

   Write-Host "Keys generated successfully!"
   Write-Host "Private key saved to: C:\WireGuard\keys\local-private.key"
   Write-Host "Public key saved to: C:\WireGuard\keys\local-public.key"
   Write-Host ""
   Write-Host "Your public key (share this with the server):"
   Write-Host $publicKey

Save this as C:\Scripts\generate-wireguard-keys.ps1

Run the script:

  • Right-click on the Start menu and select "Windows PowerShell (Admin)"
  • Run: Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
  • Run: C:\Scripts\generate-wireguard-keys.ps1 Copy your public key displayed in the output - you'll need it for the server configuration.
  1. Generate keys on remote server On your Linux server, run:
   # Create directory for WireGuard keys
   mkdir -p /etc/wireguard/keys
   cd /etc/wireguard/keys

   # Generate private key
   wg genkey > remote-private.key

   # Generate public key from private key
   cat remote-private.key | wg pubkey > remote-public.key

   # Show the public key
   echo "Your server public key:"
   cat remote-public.key

Copy the server's public key - you'll need it for the Windows configuration.

  1. Configure WireGuard on Windows Create a file with Notepad:
   [Interface]
   PrivateKey = YOUR_WINDOWS_PRIVATE_KEY
   Address = 10.10.10.1/24
   ListenPort = 51820

   [Peer]
   PublicKey = YOUR_SERVER_PUBLIC_KEY
   AllowedIPs = 10.10.10.2/32
   Endpoint = YOUR_SERVER_PUBLIC_IP:51820
   PersistentKeepalive = 25

Replace the placeholders:

  • YOUR_WINDOWS_PRIVATE_KEY with the content of your C:\WireGuard\keys\local-private.key
  • YOUR_SERVER_PUBLIC_KEY with the server public key from step 3
  • YOUR_SERVER_PUBLIC_IP with your server's public IP address Save as C:\WireGuard\wg0.conf
  1. Configure WireGuard on your Linux server Create a file on your server:
   sudo nano /etc/wireguard/wg0.conf

Add this content:

   [Interface]
   PrivateKey = YOUR_SERVER_PRIVATE_KEY
   Address = 10.10.10.2/24
   ListenPort = 51820

   [Peer]
   PublicKey = YOUR_WINDOWS_PUBLIC_KEY
   AllowedIPs = 10.10.10.1/32

Replace the placeholders:

  • YOUR_SERVER_PRIVATE_KEY with content of /etc/wireguard/keys/remote-private.key
  • YOUR_WINDOWS_PUBLIC_KEY with the Windows public key from step 2 Start WireGuard and enable at boot:
   sudo wg-quick up wg0
   sudo systemctl enable wg-quick@wg0
  1. Configure firewall on server Run these commands on your Linux server:
   # For UFW (Ubuntu/Debian)
   sudo ufw allow 51820/udp
   sudo ufw reload

   # For firewalld (CentOS/RHEL)
   sudo firewall-cmd --permanent --add-port=51820/udp
   sudo firewall-cmd --reload
  1. Start WireGuard on Windows
  • Right-click on the WireGuard icon in the system tray
  • Choose "Import tunnel(s) from file"
  • Select your C:\WireGuard\wg0.conf file
  • Click "Activate" Test the connection by opening Command Prompt and running:
   ping 10.10.10.2

You should get replies from the server.

  1. Configure SMB on the Linux server Install Samba:
   sudo apt install samba

Edit the Samba configuration:

   sudo nano /etc/samba/smb.conf

Add this at the end:

   [storage]
   path = /storage
   browseable = yes
   read only = no
   create mask = 0755
   socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
   min receivefile size = 16384
   use sendfile = true
   aio read size = 16384
   aio write size = 16384
   write cache size = 1048576
   read raw = yes
   write raw = yes
   max xmit = 65536
   host allow = 10.10.10.1

⚠️ IMPORTANT: Replace /storage with your actual storage path.

Create the storage directory and set permissions:

   sudo mkdir -p /storage
   sudo chown -R nobody:nogroup /storage
   sudo chmod -R 0755 /storage

Set up a Samba user:

   sudo smbpasswd -a YOUR_USERNAME

Restart Samba:

   sudo systemctl restart smbd
  1. Mount the SMB share on Windows Create a batch file with Notepad:
   @echo off
   echo Mapping network drive over WireGuard tunnel...

   REM Check if already mapped
   net use | findstr "Z:" > nul
   if %errorlevel% equ 0 (
     echo Drive Z: is already mapped. Unmapping first...
     net use Z: /delete /y
     timeout /t 2
   )

   REM Test WireGuard connection
   ping -n 1 10.10.10.2 > nul
   if %errorlevel% neq 0 (
     echo WireGuard connection failed. Please check your configuration.
     pause
     exit
   )

   REM Map the drive
   echo Mapping Z: to remote storage over WireGuard...
   net use Z: \\10.10.10.2\storage /user:YOUR_USERNAME YOUR_PASSWORD /persistent:yes

   REM Verify mapping was successful
   net use | findstr "Z:" > nul
   if %errorlevel% equ 0 (
     echo Drive mapping successful! Your remote storage is now available at Z:
   ) else (
     echo Drive mapping failed. Please check your server configuration.
     pause
     exit
   )

Replace:

  • YOUR_USERNAME with your Samba username
  • YOUR_PASSWORD with your Samba password Save as C:\Scripts\mount-wireguard-smb.bat Test the script: Right-click and "Run as administrator".
  1. Create automatic connection script Create a batch file with Notepad: @echo off echo Checking WireGuard connection... ping -n 1 10.10.10.2 > nul if %errorlevel% neq 0 ( echo WireGuard connection down, restarting... taskkill /f /im wireguard.exe timeout /t 5 start "" "C:\Program Files\WireGuard\wireguard.exe" timeout /t 10echo Testing connection again... ping -n 1 10.10.10.2 > nul if %errorlevel% neq 0 ( echo WireGuard still not connecting. Please check your configuration. exit )) if not exist Z:\ ( echo Network drive disconnected, remounting... net use Z: \\10.10.10.2\storage /user:YOUR_USERNAME YOUR_PASSWORD /persistent:yes ) echo Connection check completed. Replace:
    • YOUR_USERNAME with your Samba username
    • YOUR_PASSWORD with your Samba password
    Save as C:\Scripts\check-wireguard-connection.bat Set up a scheduled task:
    • Press Win+R, type taskschd.msc and press Enter
    • Click "Create Basic Task" in the right panel
    • Name: "Check WireGuard Connection"
    • Trigger: Daily, repeat every 5 minutes for a duration of 1 day
    • Action: Start a program
    • Program/script: C:\Scripts\check-wireguard-connection.bat
    • Finish the wizard
    • Right-click the new task and select "Properties"
    • Check "Run with highest privileges"
    • Click OK

Method 4: Hybrid Local/Remote Approach

This approach gives you true local NVMe performance while automatically syncing to remote storage.

Prerequisites

  • FreeFileSync (free file synchronization software)
  • Local NVMe drive with available space
  • Remote storage access

Setup

  1. Install synchronization software Download and install FreeFileSync from https://freefilesync.org/
  • Accept all defaults during installation
  1. Create local and remote mount points Open Command Prompt as administrator and run:
   if not exist "C:\LocalNVMe" mkdir C:\LocalNVMe

Map your remote storage as a drive (if not already done):

   net use Z: \\server\share /persistent:yes /user:USERNAME PASSWORD

⚠️ IMPORTANT: Replace with your actual server, share, username, and password.

  1. Configure synchronization Open FreeFileSync and follow these steps: a. Add folder pair:
  • Left side: C:\LocalNVMe
  • Right side: Z:\ b. Configure comparison settings:
  • Click the "Comparison" dropdown
  • Select "Content" (not "Size & Time") c. Configure synchronization settings:
  • Click the "Synchronization" dropdown
  • Select "Mirror (update & delete)" - this keeps remote identical to local
  • ⚠️ WARNING: This will delete files on the remote side if deleted locally d. Save configuration:
  • Click "Save As" in the File menu
  • Save as C:\Scripts\sync-storage.ffs_batch
  1. Configure real-time synchronization a. Open RealtimeSync (included with FreeFileSync) b. Add folder to watch:
  • Click "+" button
  • Select C:\LocalNVMe c. Set batch job:
  • Set the batch job to: C:\Scripts\sync-storage.ffs_batch d. Set conditions:
  • Minimum waiting time after last change: 5 seconds
  • Maximum waiting time for busy processes: 10 seconds e. Save configuration:
  • Click "Save As"
  • Save as C:\Scripts\realtime-sync.ffs_real
  1. Test synchronization a. Run the real-time sync:
  • Double-click on your C:\Scripts\realtime-sync.ffs_real file b. Test with a small file:
  • Create a small text file in C:\LocalNVMe
  • Wait a few seconds and check if it appears in your Z: drive c. Verify it works in both directions:
  • Create another file directly in your Z: drive
  • Wait a few seconds and check if it appears in C:\LocalNVMe
  1. Create automatic startup a. Create a shortcut to start automatically:
  • Right-click on your desktop and select "New > Shortcut"
  • For the location, enter: "C:\Program Files\FreeFileSync\RealtimeSync.exe" "C:\Scripts\realtime-sync.ffs_real"
  • Name it "Real-time Storage Sync" b. Add to startup:
  • Press Win+R, type shell:startup and press Enter
  • Move or copy your shortcut to this folder c. Minimize on startup:
  • Right-click the shortcut and select "Properties"
  • Set "Run" to "Minimized"
  • Click OK

Troubleshooting

Connection Issues

For Rclone mounts:

@echo off
echo Restarting Rclone mount...

REM Kill any existing rclone processes
taskkill /F /IM rclone.exe /T

REM Allow processes to terminate
timeout /t 3

REM Restart the mount
call C:\Scripts\mount-remote.bat

echo Done!

Save as C:\Scripts\restart-rclone.bat

For SMB connections:

@echo off
echo Troubleshooting SMB connection...

REM Reset network
ipconfig /flushdns
netsh winsock reset
netsh int ip reset

REM Restart the workstation service
net stop lanmanworkstation /y
net start lanmanworkstation

REM Reconnect the drive
net use Z: /delete /y
timeout /t 2
net use Z: \\server\share /persistent:yes /user:USERNAME PASSWORD

echo Done!

Save as C:\Scripts\fix-smb-connection.bat

For WireGuard issues:

@echo off
echo Restarting WireGuard connection...

REM Kill WireGuard
taskkill /f /im wireguard.exe

REM Wait for process to terminate
timeout /t 5

REM Restart WireGuard
start "" "C:\Program Files\WireGuard\wireguard.exe"

REM Wait for WireGuard to initialize
timeout /t 10

REM Test connection
ping -n 1 10.10.10.2
if %errorlevel% neq 0 (
  echo WireGuard still not connecting. Try restarting your computer.
) else (
  echo WireGuard connection restored!
)

echo Done!

Save as C:\Scripts\restart-wireguard.bat

Performance Troubleshooting

Check disk space for cache:

@echo off
echo Checking cache disk space...

REM Check Rclone cache
if exist C:\RemoteCache (
  echo Rclone cache size:
  dir C:\RemoteCache | findstr "bytes free"
)

REM Check Offline Files cache
if exist %LOCALAPPDATA%\Microsoft\Windows\CSC (
  echo Offline Files cache size:
  dir %LOCALAPPDATA%\Microsoft\Windows\CSC | findstr "bytes free"
)

REM Check available system disk space
echo System drive space:
wmic logicaldisk where DeviceID='C:' get Size,FreeSpace

echo Done!

Save as C:\Scripts\check-cache-space.bat

Clear Windows caches:

@echo off
echo Clearing system caches...

REM Clear DNS cache
ipconfig /flushdns

REM Clear SMB file handle cache
net stop workstation /y
net start workstation

REM Clear Explorer cache
taskkill /F /IM explorer.exe
timeout /t 2
start explorer.exe

echo Done!

Save as C:\Scripts\clear-caches.bat

Security Considerations

  1. Use key-based authentication where possible For Method 1 (Rclone SFTP):
  • Generate an SSH key pair
  • Configure your remote server to accept the key
  • Update your Rclone config to use the key instead of password
  1. Encrypt sensitive data If storing sensitive data:
  • Right-click your local drive in File Explorer
  • Select "Turn on BitLocker"
  • Follow the prompts to encrypt the drive
  • Store your recovery key somewhere safe
  1. Restrict access to mount points Set permissions for your local mount point:
   @echo off
   echo Setting secure permissions on mount point...

   icacls C:\RemoteStorage /inheritance:r
   icacls C:\RemoteStorage /grant "%USERNAME%":(OI)(CI)F
   icacls C:\RemoteStorage /deny "Everyone":(OI)(CI)F
   icacls C:\RemoteStorage /remove:g "Everyone"

   echo Done!

Save as C:\Scripts\secure-mount-point.bat

Uninstallation Guide

Method 1 (Rclone)

@echo off
echo Uninstalling Rclone setup...

REM Stop and remove any Rclone processes
taskkill /F /IM rclone.exe /T
sc delete RemoteStorage

REM Remove startup entry
del "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\Remote Storage Mount.lnk"

REM Cleanup directories (add /Q to suppress confirmation)
if exist C:\RemoteCache rmdir /S C:\RemoteCache
if exist C:\RemoteStorage rmdir /S C:\RemoteStorage

REM Remove rclone config
if exist "%USERPROFILE%\.config\rclone\rclone.conf" del "%USERPROFILE%\.config\rclone\rclone.conf"

echo Uninstallation complete. You may now uninstall Rclone and WinFsp applications.

Method 2 (SMB)

@echo off
echo Removing SMB optimization...

REM Disconnect network drive
net use Z: /delete /y

REM Disable offline files
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\NetCache" /v "Enabled" /t REG_DWORD /d 0 /f

REM Remove scheduled task
schtasks /delete /tn "Sync Offline Files" /f

echo SMB optimization removed.

Method 3 (WireGuard)

@echo off
echo Removing WireGuard setup...

REM Disconnect network drive
net use Z: /delete /y

REM Stop WireGuard
taskkill /f /im wireguard.exe

REM Remove scheduled task
schtasks /delete /tn "Check WireGuard Connection" /f

REM Cleanup WireGuard configs
if exist C:\WireGuard rmdir /S /Q C:\WireGuard

echo WireGuard setup removed. You may now uninstall WireGuard application.

Method 4 (Hybrid Approach)

@echo off
echo Removing hybrid sync setup...

REM Kill RealtimeSync
taskkill /f /im RealTimeSync.exe

REM Remove startup shortcut
del "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\Real-time Storage Sync.lnk"

REM Ask about local data
echo Your local data in C:\LocalNVMe will remain.
echo Do you want to delete this data? (Y/N)
set /p deleteData=

if /i "%deleteData%"=="Y" (
  rmdir /S /Q C:\LocalNVMe
  echo Local data deleted.
) else (
  echo Local data preserved at C:\LocalNVMe
)

echo Hybrid sync setup removed. You may now uninstall FreeFileSync application.

Final Notes

  • Performance Expectations: While these methods significantly improve performance, remember that final sync to remote storage happens in the background and depends on your internet speed.
  • Data Integrity: Always keep backups of important data separately from these optimized solutions.
  • System Resources: These optimizations use local disk space and memory, so ensure your system has sufficient resources.
  • Regular Maintenance: Periodically check cache disk space and synchronization logs to ensure everything works correctly.

Remember that while these methods create the impression of local access speeds, actual file transfers to the remote storage still happen in the background. For the best experience, ensure a stable and fast internet connection.