Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / security

Using Microsoft Network Client 3.0 for MS-DOS with modern versions of Windows

0.00/5 (No votes)
7 May 2023CPOL3 min read 3.5K  
In order to facilitate transferring files from my main PC to my VirtualBox machine running MS-DOS 6.22, I installed Microsoft

In order to facilitate transferring files from my main PC to my VirtualBox machine running MS-DOS 6.22, I installed Microsoft Network Client 3.0. By using the PCNTND.DOS NDIS driver for the PCnet-FAST III (AM79C973) network card emulated by VirtualBox, I was able to finish the basic setup with no major issues in less than 30 minutes:

dos_network_client

 

However, after setting LASTDRIVE=Z in CONFIG.SYS, attempting to mount any shared Samba drive using net use z: \\computer\temp failed with the following message:

Error 53: The computer name specified in the network path cannot be located

The first thing to check is to make sure that both computers are on the same workgroup and that their computer names contain at most 11 alphanumeric characters. Any security features such as firewall on the computer with the shared folders should be turned off. In my case, to save on conventional memory, I installed only TCP/IP, disabled DHCP (which doesn’t work properly with modern network devices anyway), only used the basic redirector and also turned off automatic network logon.

Next, disable password-protected sharing and enable 40-bit/56-bit encryption, which is needed as our Network Client 3.0 does not support 128-bit encryption. This can be done in Network and Sharing Center > Advanced sharing settings:

40_bit_enryption_password_protected_sharing

 

Open Local Security Policy editor and set correct values for Local Policies > Security Options > Network Security: LAN Manager authentication level:

NTLMv1

You should also make sure that SMBv1 is installed. Windows 10 does not have support for Samba v1 by default but the feature can be added by opening Control Panel > Program and Features > Windows Features and check SMB 1.0/CIFS File Sharing Support:

smb10_windows_features

You should also follow the instructions from Microsoft here and make sure that SMBv1 is indeed enabled. To make things simpler, the target folder should be shared with Everyone by using Advanced Sharing to avoid unnecessary security issues.  Also try to disable Use Sharing Wizard from View > Folder Options:

use_sharing_wizard

With this everything should be all set and you can mount the shared folder with net use:

net_use_mount

If you still have problems, take note that net use on MS-DOS Network Client can only be used with computer names, and not IP addresses. Although the computer name can be in theory up to  11 characters, during my tests, the net use command will only work with names having at most 8 characters. Only a single level of subdirectory is supported. For example, net use z: \\computer\temp will work but not net use z: \\computer\temp\data. Violating any of these restrictions and a generic error message “The syntax is incorrect” will be generated.

If you do not want to enable Samba v1 on your Windows PC, you can also connect a USB drive to a supported router (such as the Asus RT-AC2600) and configure Samba share on your router. In my tests, this setup also works with Microsoft Network Client 3.0.

To ensure drives will be connected automatically when system boots, add /persistent:yes to the net use command. If you have issues with persistency, delete all existing shared drives via /delete, remove the shares.pwl from the NET folder, and try to map the drive again.  Make sure that the shared path only contains alphanumeric characters and no other characters (not even an underscore), otherwise there may be weird issues when copying files.

Also, make sure all file and folder names are 8.3 compliant and avoid usage of long filenames. Avoid deeply nested folders, which will cause weird behavior. Also, unless your shared drive has less than 2GB of free space left, it’s very likely that the amount of free space is always reported as 2,147,450,880 bytes, the maximum value allowed when INT 21H with AL=36H is used to calculate disk free space. See this for more details.

 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)