Frequently Asked Questions (FAQ)

Q: We are running an older version of BulletProof FTP Server. If we upgrade to your latest version, will our configuration/user list/etc. transfer from our old version?
Q: Can I backup the Settings, Users and Groups?
Q: Can BulletProof FTP Server run as a Windows System-Service?
Q: My customers can’t login to BPFTP Server!
Q: My customers can login, but they can’t get a directory-listing!
Q: Do I get a discount for upgrading or renewing my previous order?
Q: I purchased BulletProof FTP Server a few years ago and I lost my key. Can you resend it?


 

Q: We are running an older version of BulletProof FTP Server. If we upgrade to your latest version, will our configuration/user list/etc. transfer from our old version?

A: YES! Absolutely. Everything is stored in INI files (settings, users, groups, etc), when the current version of the software is installed; it will go out and look for these files in the default locations for previous versions. If anything is found, the program will prompt you and ask if it’s ok to migrate these files to the current version.

FAQ: Can I Upgrade and retail all my Users, Groups and Settings?

 

Q: Can I backup the Settings, Users and Groups?

A: YES! You just need to make sure the program is not running when you backup the files. For a list of the default storage-locations for these files, please see the URL below:
http://blog.builtbp.com/2011/12/faq-where-does-bpftp-server-store-the-users-groups-and-settings/

 

Q: Can BulletProof FTP Server run as a Windows System-Service?

A: YES! The latest version includes very tight support for running BulletProof FTP Server as a Windows System-Service. Please see this guide:
HOWTO: Windows System-Service
Windows System Service: Logon As Service

 

Q: My customers can’t login to BPFTP Server!
Q: My customers can login, but they can’t get a directory-listing!

A: The machine is most likely firewalled. This means there’s a physical-device which is acting as a firewall (aka NAT/Firewall/Router/WiFi,etc) and/or Windows Firewall and/or (some other) Internet Security that is protecting the computer.

In order to run BulletProof FTP Server in a secure environment, you *MUST* configure PASSIVE-MODE and open at least two tcp/ip ports to allow full functionality. These two ports are called:
Control-Port (default tcp/ip 21) provides the ability for the ftp-client to login and issue commands
Data-Ports provide a conduit for the ftp-client to connect to the ftp-server for file-transfers, directory-listings, etc

HOWTO: Windows Firewall and BPFTP Server 2011
HOWTO: Setting up NAT/Passive/Firewall Support
FTP Server Firewall Ports and Tester

 

Q: Do I get a discount for upgrading or renewing my previous order?

A: YES! You can get the discount coupon-code and instructions from our website under the Members section of our website (see below) or you can email us with the customer information used on the previous order and we can send it directly to you.

Please also see:
FAQ: My License-Code doesn’t work in the Latest Version

 

Q: I purchased BulletProof FTP Server a few years ago and I lost my key. Can you resend it?

A: PERHAPS: First, we need you to send the customer information for the previous order. This will allow us to look it up and see what length of Update/Support Protection with Download Locker was purchased. If it’s within the period you purchased, we can quickly issue a new key and send it to you. If it’s expired, then we can send you a discount coupon-code for renewal.

You can see all of your orders and the Update/Support Protection with Download Locker by logging into the Members section of our website. If the term is expired, you an also get a coupon-code for renewal in this same location. If you are having troubles logging into the Members section of the website, please Contact Us and include your question and customer-information used on the previous order.

UPDATE: BulletProof FTP Server 2011.1.0.71

Today, we are proud to release a major-update to BulletProof FTP Server for Windows 2011 (version 2011.1.0.71). For all customers with a current license, please download/install the demo/trial version from our website and it will automatically update itself to the full-version on your computer.

Download the Newest Version Here

SO MANY UPDATES!!!!!

Oct 7th and Seattle is headlong into rainy days… great for programming, not so great for Vitamin D deficiencies.

    Summary of Changes:

  • Windows XP/2000 Start-Up problems with low GDI Memory (Out of Memory or Freeze on “Loading…”)
  • Management -> Logging had several UI and engine problems
  • Under Windows Vista,7,2008,2008R2 we’ve included a new feature to automatically create Windows Firewall Rules (Management -> Settings -> Auto-Start -> Windows System-Service)
  • Changes to work more seamlessly with the dreaded Windows User-Access-Control (UAC)
  • Windows System-Service: Several “Assertions” at start-up of the service to make sure the service can “see” the configuration files, users and groups (Check the Event Viewer for Service start-up problems)

Below is a full listing of the “changelog” and contains a lot of techno-jargon.. but rest-assured, it’s chock full of changes related to my goals for 2011 (in this order):

#1 – Windows System Service
#2 – Stability
#3 – Speed
#4 – User-Interface

What’s New aka Changelog (Copied Below)


Version 2011.1.0.71 - 2011-OCT-07
-------------------------------------------------------------------------
* Improved: START-UP: The program will now interrogate the Windows Registry to see if there's enough GDI-Desktop-Heapspace allocated, in order to prevent a problem with "Out of Memory" in Windows XP/2K (subsequent versions of Windows increased this setting). We prompt a warning if the value is < 8192 (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems)

* Changed: Server Info: When clicking the "Log File Path" entry, the program will now take you to "Management -> Logging -> Log Settings -> Saved Log-File Location"... instead of opening the folder that contains the log file.

* Fixed: Console -> Error Messages: Fixed a couple of bugs that prevented the Copy & Clear menu-options (right-click) from working correctly.

* Improved: Management -> Logging -> Log to File: On start-up, the logging-to-file option was not starting correctly

* Improved: Management -> Logging -> Logged Events: Went through each and every menu option, fixed it's (mis)behavior in the UI and ensured that the options worked and did as described.

* Improved: Management -> Logging -> Logging Options: Went through each and every menu option, fixed it's (mis)behavior in the UI and ensured that the options worked and did as described.

* Improved: Management -> Logging -> Log Settings: Went through each and every menu option, fixed it's (mis)behavior in the UI and ensured that the options worked and did as described.

* Fixed: Management -> User Manager -> Edit User -> Login -> Group Name: Rewrote the handling of group-membership for a user-account, as there was a random error in which the group- membership would be "lost" for a user-account. Part of the fix was an internal restructing of the user-account (object) to *not* store a pointer to the group-account (object), but rather it now dynamically looks up the group-account (object) from the list of group-accounts (TBPSGroupAcctList)

* Changed: Moved to latest licensing-wrapper v8.60 (previous v8.40)

* Fixed: Clicking the "X" to close the program: Fixed a problem in which, if there were connected clients and you clicked "X" to close the program, it would boot the ftp-clients, but not actually close the program until you clicked the "X" again.

* Improved: Management -> Settings -> Security -> Block FXP: Changed the DEFAULT for Blocking server-to-server (FXP) to "FALSE" aka "UNCHECKED". As connecting with an ftp-client, from inside the network, to the external IP address of the network-connection would cause it to be falsely triggered (Client:192.168.0.11 connecting to InternetIP:24.2.23.2 is port-forwarded back inside the network to Server:192.168.0.12, FTP-Client would thus be connected from 192.x but asking for a PORT command back to 24.2.23.2)

+ Added: Management -> Settings -> Auto-Start -> Windows System-Service: "Open Windows Firewall" which will automatically create four firewall-rules in Windows Adv. Firewall for the program, service, control port and data-ports. (only in WinVista,7,2008,2008R2)

* Improved: Management -> Settings -> Logging: Added "Log Watch" to list of options and made some performance tweaks for handling of windows-messages during fast-updates to the control.

* Improved: Management -> Settings -> General -> Adv General Options -> Remote Debug: Made a change to keep the "Information: Remote-Debug is ON" message from displaying, if it was already ON when saving settings.

* Improved: Management -> Settings -> Auto-Start -> Windows System-Service: Made some minor changes to better handle the turning ON|OFF of the Windows-System-Service and error handling for the DOMAIN/USER and PASSWD values.

* Fixed: Management -> Settings -> Auto-Start -> Windows System-Service: Changed the default OS-USER for the SERVICE to "USERDOMAIN\USERNAME" (originally this was just ".\USERNAME")

* Fixed: Management -> Settings -> Auto-Start -> Windows System-Service: Fixed a case where... if the main-executable failed to start or terminated abruptly, The THREAD that rain the main-executable was terminating, but the parent Service-Handler was never getting the Event-Raised and sat in a WaitForSingleObject(hKillServiceEvent,INFINITE) forever

* Improved: Management -> Settings -> Auto-Start -> Windows System-Service: The service will now refuse to start if it's running under "Local System", as a User/Password must be granted to the program in order to the Settings,Users,Groups stored in %LOCALAPPDATA%

* Improved: Management -> Settings -> Auto-Start -> Windows System-Service: The service will now refuse to start if no configuration files are found. This helps to resolve problems in which the SERVICE is ran under a different OS-USER than the GUI; as files are stored in %LOCALAPPDATA%, which is OS-User dependant

* Changed: Management -> "Server Settings" renamed to "Settings"

* Changed: Server Monitor -> "Server Statistics" renamed to "Statistics"

* Improved: Vista/Win7 User-Access-Control (UAC): Added a manifest file to the installation in order to tell Vista/Win7 that "Admin Privledges are Needed"

* Improved: Vista/Win7 User-Access-Control (UAC): In an effort to reduce program-compatibility problems when running under a NON-ADMIN account, the "Override Storage Path" file has been moved to CSIDL_COMMON_APPDATA, originally this was saved in the installation-directory for the software.

* Improved: Vista/Win7 User-Access-Control (UAC): In an effort to reduce program-compatibility problems when running under a NON-ADMIN account, the "Remote-Debug" flag-file (bpftpserver-remotedebug.txt) has been moved to CSIDL_COMMON_APPDATA, originally this was saved in the installation-directory for the software.

HOWTO: Windows System-Service

BulletProof FTP Server 2011 can also run as a Windows System-Sevice, allowing you to serve up ftp-content from your computer without having to login to the system. This is a very handy feature for businesses that rely upon a FTP-Server to communicate with customers, receive files from automated processes or just-plain access your HOME computer from WORK.

Setting up Windows System-Service Support is very easy, but it does mean a little-bit of leg work on your end to satisfy Microsoft Windows’ security.

Click on a thumbnail to expand the image and see more information and instructions.

HOWTO: Upgrade your license from HOME to CORP

First, thank you very much for upgrading to the CORP version! Your support helps to fund development and keep new versions coming out with the same pace of changing technology!

Second, you’ll need to remove the previous license from the computer. This is done by:

  • Launch the GUI version of BulletProof FTP Server for Windows
  • Clicking the “About” button
  • Now, hold down Ctrl + Shift + Alt and Left-Click the section labeled “Licensed for Use”
  • Click “Yes” to confirm removing the license
  • Then click the “Enter Key” dialog after the program terminates
  • FIX: “Out of Memory” or “Low GDI” with BulletProof FTP Server

    Is BulletProof FTP Server for Windows crashing when you first run it? You might have it freeze during “Loading” or a “Crash Report” comes up saying “Out of Memory”…

    Don’t worry! It’s most likely a problem with running out of GDI-Handles in your installation of Windows…

    You may receive an “Out of Memory” error message because of the desktop heap limitation in Windows Vista or in Windows 7
    http://support.microsoft.com/kb/947246

    “Out of Memory” error message appears when you have a large number of programs running
    http://support.microsoft.com/kb/126962

    NOTE: You CANNOT have the /3GB option specified in the bootloader, this is often used on Exchange Server installations. (MORE INFO)

    This GUIDE will help illustrate the steps to increase the amount of memory..

    Vista Hands On #17: Solving a pesky resource problem
    http://www.zdnet.com/blog/bott/vista-hands-on-17-solving-a-pesky-resource-problem/269

    SharedSection & Max Number of Open Windows on XP & Vista
    http://www.mycsharpcorner.com/Post.aspx?postID=50

    Windows XP flakiness – solved
    http://weblogs.asp.net/kdente/archive/2004/06/04/148145.aspx

    Registry setting keeps Windows from wigging out when you open lots of IE7 tabs
    http://weblogs.asp.net/jgalloway/archive/2008/01/14/registry-setting-keeps-windows-from-wigging-out-when-you-open-lots-of-ie7-tabs.aspx

    INCREASING USER HANDLE AND GDI HANDLE LIMITS
    http://weblogs.asp.net/mikedopp/archive/2008/05/16/increasing-user-handle-and-gdi-handle-limits.aspx

    Many Thanks to AlexanderL for helping to discover a resolution to this problem!

    HOWTO: Remote-Debugging in BPFTP Server

    The latest version of BulletProof FTP Server for Windows has an advanced debugging mode, which will send verbose, detailed information on your configuration, settings and what happens during the program’s execution.

    This is very useful in understanding and solving a problem.

    To toggle this mode, there’s a very simple checkbox under:

    Management -> Server Settings -> General (tab) -> Adv. General Options -> Enable Remote-Debugging

    If you are having Start-Up issues and can’t get the UI to come up for this option, you can also manually activate it:

    1) Open NOTEPAD
    2) Type the word "debug" (or really anything)
    3) Save the Text-File to the installation directory for the software:

    Under Windows (32-bit) the default path is:
    C:\Program Files\BulletProof FTP Server 2011\remotedebug.txt

    Under Windows (64-bit) the default path is:
    C:\Program Files (x86)\BulletProof FTP Server 2011\remotedebug.txt

    Then run through the steps that generate the error or that you have a question about and send us an email with your Computer-Name. This will allow us to pull the logs from the remote-debug-server and analyse the problem. The Computer-Name is obtained by:
    Windows Start -> right-click "My Computer" or "Computer" and choose "Properties"

    NOTES:

  • Please ONLY run under this REMOTE-DEBUG mode for a very short time; Enable it, perform the action which represents the problem, then Disable it. The amount of debugging information sent is extraordinary and running it for 30 minutes with several connected ftp-users will take hours to send the data.
  • FIREWALL: If you are running Windows Firewall or other types of firewalls (hardware or software based), you will need to allow the program to open an OUTBOUND tcp/ip connection to “remotedebug.builtbp.com” on tcp/ip port 30101.
  • When this mode is enabled, you will see a new process appear under “Task Manager -> Processes -> (sort) Image Name” called “CSDISPATCHER.EXE”. This process is responsible for relaying the debugging information from BulletProof FTP Server to the Remote-Debug-Server. Killing this process, will empty the outbound queue of remote-debug-messages.
  • Windows System Service: Logon As Service

    Microsoft is known to be one of the most security (gui) operating-systems on the ‘net. For us old salts, we know it certainly didn’t start that way. Over the last decade, Microsoft has made tremendous strides… but with that comes added levels of complications.

    Take running BPFTP Server as a Windows-System-Service, one of the most common technical-support questions (second to Firewall settings )… It’s a complicated issue.

    In order to run BPFTP Server as a Windows-System-Service, you must give it a USER/PASSWORD to run under. In BulletProof FTP Server 2011, this is done under:

    Management -> Server Settings -> Auto-Start (tab) -> Auto-Start: Windows System Service

    Or, You can change it directly from Windows in:

    Windows Start -> Control Panel -> Administrative Tools -> Services -> BulletProof FTP Server 2011 -> right-click for "Properties" -> "Logon" (tab)


    NOTE: This USER/PASSWORD needs to be the same one you run the GUI version as, since the Settings, Users and Groups are all stored in:

    "%LOCALAPPDATA%\BulletProof Software\BulletProof FTP Server\2011\"

    NOTE: You can get around this, by overriding the “default storage-path” in BulletProof FTP Server 2011 under the following:

    Management -> Server Settings -> General (tab) -> Adv Settings -> Override Storage-Path


    Which brings us to the permission “Logon as Service”… The magically permission that the OS-USER needs to have in Windows in order to run BulletProof FTP Server 2011 as a Windows System Service.

    Microsoft: Logon as Service
    http://technet.microsoft.com/en-us/library/cc739424(WS.10).aspx

    UPDATE: BulletProof FTP Server 2011.1.0.70

    Today, we are proud to release a major-update to BulletProof FTP Server for Windows 2011 (version 2011.1.0.70). For all customers with a current license, please download/install the demo/trial version from our website and it will automatically update itself to the full-version on your computer.

    Download the Newest Version Here

    SO MANY UPDATES!!!!!

    Well, it’s Aug 25th and while we’ve had 5 days over 80 degrees in Seattle… the dreary weather has yielded A TON of updates to BPFTP Server. With the help of several betas testers and some clever customers, lots of problems have been addressed in the code. Below is a full listing of the “changelog” and contains a lot of techno-jargon.. but rest-assured, it’s chock full of changes related to my goals for 2011 (in this order):

    #1 – Windows System Service
    #2 – Stability
    #3 – Speed
    #4 – User-Interface

    What’s New aka Changelog (Copied Below)


    Version 2011.1.0.70 - 2011-AUG-25
    -------------------------------------------------------------------------
    * Fixed: Server Monitor -> User Activity: Put several checks for NIL pointers (ListViewData)
    * Improved: Reorganized the start-up code in an effort to battle the "Freeze" during "User-Interface...". Moved the "Internal_Init_OSDriveScan|OutputOSInfo" to BPSBootstrap_InitAll()
    * Improved: Reorganized the start-up code in an effort to battle the "Freeze" during "User-Interface...". Moved the "AutoStartActivateOnExecute" to BPEngine_StartYourEngines()
    * Changed: Removed the 64x64 set of pixel images and enabled the x-small 24x24 set for Toolbars. This changed causes the internal memory footprint for graphic-resources to be cut in half. This should eliminate the start-up program on some computers which results in "Out of Resources" (Thx ALEXANDERL, "Error reading TCheckBox.Checked: Not enough storage is available to process this command.")
    * Fixed: Server Monitor -> Server|Error Log -> Right-Click for COPY/CLEAR: Fixed an Access-Violation which was being raised when these functions were executed. (Thanks Fr Philippe)
    * Improved: Management -> Server Settings -> Enable Remote-Debug: Changed to allow for the saving of remote-debug-files on a per-computername, per-day basis.
    * Fixed: Server Monitor -> Current Activity: Fixed a problem, caused by the last beta, which was not displaying any data.

    Version 2011.1.0.69 - BETA - 2011-AUG-16 - ONLY BETA
    -------------------------------------------------------------------------
    * Improved: Main-Toolbar: Reorganized the menu-options by moving "User|Group Manager" to the main, added "Server Monitor" (renamed Console) and grouped liked functions, added "Management" and grouped liked functions, renamed "View Server Logs" to "Log Watch" (thx IBRAHIM)
    * Improved: Main-Toolbar: Removed the sub-toolbar that appears under the main-toolbar. This was replaced by the new "Classic: Use traditional Main-Menu" under Management -> Settings -> Visual (thx IBRAHIM)
    x Fixed: Management -> Server Settings -> Auto-Start -> After Logging into Windows: The program executable-path, that is written to the Windows-Registry, was not surrounded by dbl-quotes for cases in which the path contained spaces aka 0x20.
    x Fixed: Management -> Server Settings -> Auto-Start -> After Logging into Windows: Previously the program was writting to the Windows-Registry for HKLM:RunServices, while this could work.. it's really incorrect, the program should only be started for the current-user and moved to HKCU:Run.
    x Fixed: Management -> Server Settings -> Auto-Start -> Windows System Service: Fixed an exception that was generated if you click "Accept" in "Settings" and "Enable...Windows System Service" was left checked OFF and the service had never been enabled. It was essentially trying to Uninstall it, without it being Installed.
    ! Wish-List:Management -> Settings -> Visual -> "Classic: Use traditional Main-Menu "Pull-Down" style vs the new "Button" look"... it's back! Some people think the old-skool Main-Pulldown-Menu "File, Edit, View" was dead... but I've had lots of people state they like the older-look and feel of the "Classic" v2.x better that we've put in another compatibility layer in place for those that wanted to get their Windows 3.1 fix.
    x Fixed: Go Online|Offline Button: If the configuration for the ftp-server is changed to a different port and that port is currently in-use by another process on the system... then a failure to BIND occurs and the user is presented an error message to fix the problem. However, in the UI the button still got depressed and would change to "Go Offline" (indicating that it was ONLINE). This behaviour was fixed and will no-longer show pressed when it shouldn't be.
    * Wish-List:Console -> Server Log -> Error Messages: In an effort to help in visibility for error-messages, a new panel common-panel has been added to the bottom of the UI that presents a list of all error messages... before the errors would be "lost" in the chaos of all the other logged-messages and would scroll off the screen and out of the user-defined buffer for number-of-lines-to-show.
    * Improved: Console -> Server Log: All code now goes through the central-loggging mechanism for logging to disk as well as screen. Some information was only sent to the screen, this change now sends everything to disk as well.
    * Improved: Main -> Server Info: Added a section for "Licensing" information which shows the current status of the installed license or the number of days left in the trial.
    * Improved: Main -> Server Info: Added a section for "logging" which shows the current status of logging to the screen|file as well as being able to open/view the log-file and open the directory containing the log-file.
    x Fixed: Management -> Group Manager -> Cancel: Fixed a problem in which the in-memory-list of pending-group-accounts was being .Free()'d but not .Remove()'d from the list... so the pointer still existed, but the memory was freed. When the program terminated and the list was cleaned up (with all the rest), it still had "items" in the list and when I went to free them .. blam-o and Access-Violation occurred. I had this problem fixed in 2011-06-06 for the Users, but the same fix didn't make it to Groups.
    * Improved: Management -> User|Group Manager: On Add|Clone of a user|group-account, adding a new account will automatically resort the list and automatically select the recently added account.
    x Fixed: Management -> User Manager -> Clone User: Resolved a UI problem where you could clone a single-user multiple times.. then stop cloning when you hit the ESC key for the cloned-user-name. This was confusing behaviour and removed the cloning of a user multiple times.
    x Fixed: Management -> User Manager: Right-click the list of user-accounts and select "Copy URL for Email to Clipboard" has been fixed to use the "External IP" in the case where Passive-Mode was defined but no Hostname or Static-IP was assigned for the passive-mode-ip.
    x Fixed: Management -> User|Group Manager: Right-click the list of user|group-accounts and selecting "Copy Account-List to Clipboard" has been fixed to correctly copy the entire list to the clipboard
    x Fixed: Management -> User|Group Manager -> Access-Rights: Resolved a problem where dbl-clicking on an existing-defined access-right for editting, was *not* preselecting the defined path in the "Select Directory" dialog-box's ShellTreeView.
    * Improved: Management -> User|Group Manager: When the list of user|group-accounts are populated, it will now default to sorted
    * Improved: Management -> User|Group Manager: Before the settings for the user-account (on the right) would only update to the currently selected user|group-account (on the left) if it was clicked-on with the mouse. Changed the behavior to update the settings when a new user-account is selected using the keyboard-arrows.
    * Improved: Management -> User|Group Manager: Increased the speed of populating the list of user|group-accounts (.beginupdate(), .endupdate())
    x Fixed: Internal: Fixed a problem where computers with over 3GB of RAM where being reported incorrectly at program-start. This is purely cosmetic, as we don't care about total physical-ram... but it's nice to be correct!
    * Improved: Initialization and Start-Up Time REDUCED: Optimized the query of the system-information (CPU,MEM,OS). Reduced the time from 6.5 seconds in this routine to roughly < 1ms.
    * Improved: Initialization and Start-Up Time REDUCED: Optimized the loading of user/group-accounts on start-up of the program. The loading of 620 user/group-accounts is now under 2 seconds vs 20 seconds on test platform.
    * Improved: Management -> User|Group Manager -> Save: Dramatically increased the speed of saving user/group-accounts. The saving of 620 user/group-accounts is under 2 seconds vs 16 seconds on test platform.
    * Changed: Changed the Icon-Names under "Console" to "User Activity" and "File Activity" from "Current User Activity" and "File Activity"
    * Improved: Management -> User|Group Manager -> Edit User|Group -> Restrictions: Added new "Access-Control List (ACL)" management, this allows the ability to ALLOW|DENY access to the ftp-server by IP-Address (exact match, address-range, wildcards) as well Hostname restriction based on the Reverse-DNS-Lookup of the IP.
    * Improved: Remote-Debug-Mode: Added functionality to echo any log-messages to the remote-debug-server to aid in reporting of current activity on the customer's machine.
    x Fixed: Management -> User Manager -> Edit User -> Login -> Group-Name (pulldown): fixed a problem where the pull-down was disabled at start-up, even if the check-box for "Group Name" was checked and the user was a member of a group.
    * Improved: Main Toolbar: Rearranged the User|Group Manager to be the first two options and Quick-Add User|Group to the last two items. In addition, a hot-key for User|Group Manager has been added of Ctrl-U and Ctrl-G.
    ! Wish-List:Console -> Server Log: For the "Classic" (aka v2.x) lovers out there; Added a check-box at the bottom to "Make this your default view on program-start". While this option is also under Management -> Settings, it seemed fitting to put a quick-toggle under the Console-Log
    * Improved: Windows System Service: When the GUI is ran and BPS is running as a Windows-System-Service, the GUI will now automatically issue a termination of the service *and* restart it automatically when the GUI closes.
    * Improved: F9 HotKey-Added to Minimize Window
    x Fixed: Management -> Server Settings -> Visual -> "Send Minimized Program to the System Tray.."; fixed a problem where it wasn't *always* minimizing as TrayIcon
    x Fixed: Management -> Server Settings -> Visual -> "Start Minimized.."; fixed a problem where an icon would still show in the Task-Bar *and* in the System-Tray, instead of just in the System-Tray
    ! Wish-List:Management -> Server Settings -> Auto-Start: We've tightly integrated Windows System-Service support into the codebase, by providing an option to install the service *as well* as provide the OS-User and Password for the Service to run under.
    * Improved: Management -> Server Settings -> Auto-Start: Created a new "tab" called "Auto-Start" which will house all of the options related to the program's start-up
    ! Wish-List:STORAGE-PATHS. Starting in v2011.1.0.63 the program was changed to use LOCALAPPDATA as the storage-path for all files (settings, users, groups, etc). This was done to adhere more strictly with Microsoft's recommendations for the placement of files used by applications. However, we've found that customers like to control the location of these files for many purposes; such as redudancy, load-sharing and better user-security (running BPS as a Service under a OS-User without desktop-permissions, a great reason!). So we've implemented a method of overriding the location of these files by placing a file called "bpftpserver-storagepath.txt" in the installation directory for the software with a single line that reads "storage=c:\somewhere\on\my\computer".
    ! Wish-List:Management -> Settings -> Adv. General Options: Override Storage-Path that will allow you to specify a directory where the Settings, Users, Groups, etc are stored... (see the notes for the above change for technical info)
    * Improved: Management -> Settings -> Adv. General Options: Added the ability to turn-ON off the Remote-Debug feature for sending verbose logging to the remote-debug-server for analysis

    HOWTO: API/CLI into BPFTP Server

    BulletProof FTP Server is an excellent FTP Server for Windows. With the recent development efforts in v2011, we thought it would be a good time to introduce some of the command-line-switches (CLI) for managing BPFTP Server from external programs, web-sites, scripts, etc.

    NOTE: At times you’ll see BulletProof FTP Server for Windows referred to as “BPS”.

    Let’s first start with a brief explanation of the binaries distributed with BulletProof FTP Server for Windows (BPS):

    The default installation location for the program is located in the following location:
    %PROGRAMFILES%\BulletProof FTP Server 2011\

    Depending on your version of Windows, %PROGRAMFILES% is expanded to the following for 32-Bit and 64-Bit versions of Windows:
    C:\Program Files\BulletProof FTP Server 2011\
    C:\Program Files (x86)\BulletProof FTP Server 2011\

    Investigating this location will yield the following executables:
    bpftpserver-2011.exe – Main executable for the program
    bpftpserver-adduser.exe – CLI to manipulating the User & Group Database
    bpftpserver-service.exe – responsible for controlling BPS when it’s running as a Windows System Service
    CSDispatcher.exe – used with “remote debug” for sending log-messages to our remote-server

    MAIN EXECUTABLE

    bpftpserver-2011.exe [OPTION]

    -reload
    Will cause the running instance of BPS to reload the settings, users and group information.

    -online
    Take BPS online and ready for incoming connections.

    -offline
    Take BPS offline and disable the listener from answering incoming connections.

    -exit
    Terminate BPS and stop it’s execution on the system. All users will be forcibly disconnected.

    -close
    Keep BPS online and all active-connections maintain, but disable the listener; resuling in no *new* connections accepted.

    -open
    Renable the listener, allowing new connections to be accepted.

    -startlogging
    Start logging to the log-file defined in the software.

    -stoplogging
    Stop logging to the log-file.

    -kickall
    Kick all currently connected users off of the server.

    -stat
    Regenerate the statistics files for users in the system.

    CLI ADDUSER

    BulletProof FTP Server 2011 command-line utility 'bpftpserver-adduser.exe'
    Copyright (c) 1998-2011 BulletProof Software LLC, All Rights Reserved.

    Command-line utility to manipulate the USER and GROUP database for BulletProof FTP Server 2011.

    Usage: bpftpserver-adduser.exe [OPTION]…

    -list=USERNAME[*,?]
    -name=ACCOUNTNAME
    -enabled
    -disabled
    -login=USERNAME
    -group=GROUPNAME
    -pswd=PASSWORD
    -crypt
    -access=PATH,ACCESSRIGHTS
    -loginmsg=FILENAME
    -speedlimit=[0,1]
    -speedrcv=BYTES-PER-SECOND
    -speedsnd=BYTES-PER-SECOND
    -banfile=FILEMASK[,FILEMASK2,FILEMASK3,...]

    Access = R(ead) W(rite) D(elete) A(ppend) M(ake) L(ist) S(ubdir) K(delete dir)

    First -access will be Home Directory

    Example :
    C:\Program Files (x86)\BulletProof FTP Server 2011\bpftpserver-adduser.exe -name=newuser -enabled -login=newlogin -pswd=newpass -group=demogroup -loginmsg=c:\login.txt -access=c:\ftproot\,RLS -banfile=+*.jpg,+*.gif

    Some explanation of the behavior is important, specifically the “-access” parameter. In the above example the login of “newlogin” for the account “newuser” is given the directory of “c:\ftproot\”

    We’ll break down the command-line, piece by piece

    -name=newuser
    While initially confusing, there’s a difference between an “account-name” and the “login-name”. The account-name refers to a “user-friendly” name for the account, such as “upstairs accountant” and “log-name” is the actual login that used to access the ftp-server; such as “accountant”.

    -enabled
    Will enable the account for login

    -login=newlogin
    The login-name for the user to use to access the ftp-server (see above not for -name)

    -pswd=newpass
    The password for the login

    -group=demogroup
    If the account belongs to a group, you can specify the name of the group (OPTIONAL)

    -loginmsg=c:\login.txt
    Will send a user-specific login-message via the protocol to the user after logging in (OPTIONAL)

    -access=c:\ftproot\,RLS
    Will add an access-right for the account to the directory c:\ftproot\ with the privledges of (R)ead,(L)ist,(S)ubdir . The first access-right specified will be the HOME-DIRECTORY for the user. Additional access-rights can be defined by use the “-access” parameter again. If you are specifying a user-account that already exists, then all access-rights for the account will be deleted and given the access-rights that you define here.

    -banfile=+*.jpg,+*.gif
    Will add a file-mask of files that the user-account is prohibited from uploading or downloading. (OPTIONAL)