File Transfer Protocol

The File Transfer Protol (FTP) allows you to transfer files to and from your Windows 10 IoT Core device

Starting the FTP server on your device


  • By default, the FTP server is disabled on your IoT Core device. In order to start the FTP server on your device, first you need to connect to your device through PowerShell or SSH.
  • Type start C:\Windows\System32\ftpd.exe
  • You can check that the server is running by typing tlist, which will list all the running processes. If the FTP server is running, you should see ftpd.exe in the list.

    FTP Start

Stopping the FTP server on your device


  • In order to stop the FTP server on your IoT Core device, first you need to connect to your device through PowerShell or SSH.
  • If you connected using PowerShell, type kill -processname ftpd* to stop the FTP process.

    FTP PowerShell Stop

  • If you connected using SSH, type kill ftpd* to stop the FTP process.

    FTP SSH Stop

Accessing your files over FTP


  • The FTP server on your IoT Core device starts automatically on boot. In order to connect to it, you need the IP address of your device. You can find the IP address on the default app that boots when your device starts.

    DefaultApp on Windows IoT Core

  • Once you have the IP, open up File Explorer on your PC and type ftp://<TARGET_DEVICE>, where <TARGET_DEVICE> is either the name or the IP address of your device, then hit Enter. Enter your administrator username and password if prompted.

    FTP explorer

  • Now you can access the files on your device through FTP.

Changing the root FTP directory


  • By default the FTP server displays all the folders in the device’s root directory C:\. In order to change the root directory, follow the same steps to start the FTP server, except you need to pass in the root directory as a parameter.
  • In order to change it, first connect to your device through PowerShell or SSH.
  • Stop the FTP process if it’s already running.
  • Type start C:\Windows\System32\ftpd.exe <PATH_TO_DIRECTORY>, where <PATH_TO_DIRECTORY> is the absolute path to the directory you want to set as the root directory, such as C:\Users\DefaultAccount.

    FTP Start with Parameter

  • Now when you connect to your device through FTP, you will see the contents of the root directory you set.

    FTP explorer with new root directory

  • In order to make this change permanent, you need to edit the script that starts the FTP server when the device turns on. To do this, open up File Explorer and type \\<TARGET_DEVICE>\c$\Windows\System32, where <TARGET_DEVICE> is either the name or the IP address of your device.

    FTP explorer edit script

  • Find IoTStartupOnBoot.cmd, right-click it, and click Edit.

    FTP explorer right-click

  • If a “Access is denied.” dialog pops up right click it, and click Properties.

    • Select the Security tab
    • click Advanced “Advanced Security Settings for IoTStartupOnBoot.cmd” dialog pops up
    • note the Owner TrustedInstaller
    • click Change near Owner “Select User or Group” dialog pops up
    • enter Administrators
    • click Check Names
    • click OK
    • note the Owner Administrators (yourdevicename\Administrators)
    • click Apply
    • close both dialogs with OK

    now the file can be edited

  • If a security dialog pops up, just click Run.

    FTP security dialog

  • Your default text editor should now open. Find the line that contains start ftpd.exe.

    FTP command

  • Change it to start ftpd.exe <PATH_TO_DIRECTORY>, where <PATH_TO_DIRECTORY> is the absolute path to the directory you want to set as the root directory, such as C:\Users\DefaultAccount. Then save the file and close the window.

    FTP new command

  • Now when you reboot your device, the FTP server will start with your new root directory.

Was this page helpful?
Additional feedback?
Thank you! We appreciate your feedback.
Follow us