BASIC program on Samba share gets 'Access denied' when launching other process

2

This is the situation. We have a Synology NAS (running DSM 5.0) hosting a Windows file share called general. This folder's permissions are set as in the screenshot:

'general' folder Synology permissions

This folder is used as a mapped network drive on Windows 7 (32-bit) clients (mapped as Z:). No authentication is needed for this share. I.e. everyone can access it.

A legacy Microsoft BASIC 7 program houses on this mapped drive. This program itself (say PROGRAM.EXE) functions correctly. It runs, can create files and folders, etc. No problem there.

The problem rises when the program creates a temporary file (say INVOICE.TXT) and then tries to launch another process, that is printing the created text file in a nice way. According to the program's developer, it uses SHELL Z:\INVOICE.EXE to launch this process. What the program shows when this is executed, is: Access denied.

The weird thing is that when I run INVOICE.EXE manually from Windows Explorer, all goes well (i.e. the invoice is printed).

I'd like to add that when both programs are on a local disk, or on a shared disk of another Windows host, all goes well.

I have no clue what is going wrong. What I've tried so far:

  • Disabled UAC.
  • Added the IP address of the Synology to Internet Explorer's trusted websites.
  • When both programs are on a local disk, all works well.
  • When both programs are on a share of another Windows machine, all works well.
  • Ran PROGRAM.EXE as an administrator (this worked only after sharing mapped drives with all users).
  • Changed the permissions of the folder as shown in the screenshot. Its directory contents look like this now:

    synology> ls -l /volume1
    ...
    drwxrwxrwx   33 guest    users         4096 Oct  2 14:28 general
    ...
    

    All subfolders and files have the same permissions. The accompanied synoacltool shows this for the folder (and subfolders + files):

    synology> synoacltool -get /volume1/general
    ACL version: 1 
    Archive: has_ACL,is_support_ACL 
    Owner: [guest(user)] 
    --------------------- 
     [0] group:users:allow:r-x---a-R-c--:---n  (level:0)
     [1] everyone::allow:rwxpdDaARWcCo:fd--  (level:0)
    

But all without getting it to work...

hvtilborg

Posted 2014-10-03T14:20:00.507

Reputation: 73

Is PROGRAM.EXE able to successfully run INVOICE.EXE when the NAS is not involved? For instance, copy the programs and any necessary data files to your desktop, unmap Z:, and instead map Z: to a local partition (so the BASIC program doesn't need to be changed to call INVOICE.EXE from a location other than Z:). That might help isolate whether the NAS is contributing to the problem or not. – Nick Russo – 2014-10-09T14:55:50.083

Answers

1

Try disabling SMBv2 on your Windows 7 client. Many users report problems using newer versions of SMB with legacy applications or non-Windows systems.

sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc.exe config mrxsmb20 start= disabled

Must be run as an administrator and must restart for the commands to take effect.

Jason

Posted 2014-10-03T14:20:00.507

Reputation: 5 925

I would like to add that I had the Synology option 'Enable SMB2 and Large MTU' (under the control panel's file services tab) turned on. Turning this option off, also solves the problem without going by all clients. – hvtilborg – 2014-10-16T14:07:15.660