Is it really not possible to get files from a smb file share?

Describe the problem/error/question

I’m looking for a VisualCron replacement for our organization.
We use VisualCron a lot for data transfer and manipulation, log handling, file transfer, executing Powershell scripts,…
For most of our tasks we need to read or write files on SMB file shares. It seems this is not possible on N8N without mounting the share in Docker. Is this correct?
I’ve just installed N8N on a Windows server with NodeJS, but with Read/Write files from Disk I get the message “Access to the file is not allowed. Allowed paths: C:\Users\xxxxx/.n8n-files”
We don’t have FTP active on our 1.400+ servers and I can’t mount every share on the N8N server…

If direct file access is not possible N8N will be not very useful for us :frowning:

What is the error message (if any)?

Please share your workflow

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version: 2.9.2
  • Database (default: SQLite): SQLite
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app): Docker/npm
  • Operating system: Ubuntu 24.04/Windows Server 2022

Hi @BVE, welcome to the n8n community!

Yes, n8n does not access SMB shares directly. For it to work, the path needs to be accessible by the operating system. You must configure the N8N_FILESYSTEM_ALLOWED_PATHS variable to include the desired directories and ensure that the n8n service is running with an account that has permission on those shares (ideally a domain account in a corporate environment).

In larger environments, it is usually more appropriate to use local agents (PowerShell/Node) or internal APIs and leave n8n only as an orchestrator, instead of centralizing all SMB access on it.

1 Like

To add to what @tamy.santos mentioned, here are a few concrete approaches for your large Windows environment:

Option 1: Set N8N_FILESYSTEM_ALLOWED_PATHS (Windows npm install)

Since you’re running n8n via npm on Windows, add this to your environment:

N8N_FILESYSTEM_ALLOWED_PATHS=C:\\SharedFolders,D:\\Logs

Make sure n8n runs as a domain account that has access to those SMB shares, or map the shares to local drive letters first (net use Z: \\server\share).

Option 2: Docker with volume mounts

If you switch to Docker, mount the SMB share directly:

volumes:
  - //server/share:/data/smb-share

Then set N8N_FILESYSTEM_ALLOWED_PATHS=/data/smb-share inside the container.

Option 3: Execute Command node (most flexible for 1400+ servers)

For large-scale environments like yours, the Execute Command node is actually the best fit. You can run PowerShell directly:

Invoke-Command -ComputerName server01 -ScriptBlock { Get-Content \\server\share\file.txt }

This lets n8n act as the orchestrator (as @tamy.santos suggested) without needing to mount each share.

Option 4: Community node n8n-nodes-smbclient

There’s a community node that provides SMB support. You can install it via Settings → Community Nodes. It handles SMB2/SMB3 natively without OS-level mounts.

For 1400 servers, Option 3 (Execute Command + PowerShell remoting) is likely the most scalable approach.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.