Programa BASIC no compartilhamento Samba recebe 'Acesso negado' ao iniciar outro processo


2

Essa é a situação. Temos um Synology NAS (executando o DSM 5.0) que hospeda um compartilhamento de arquivos do Windows chamado general. As permissões desta pasta são definidas como na captura de tela:

pasta 'geral' Permissões de Synology

Essa pasta é usada como uma unidade de rede mapeada em clientes do Windows 7 (32 bits) (mapeados como Z:). Nenhuma autenticação é necessária para este compartilhamento. Ou seja, todos podem acessá-lo.

Um programa herdado do Microsoft BASIC 7 abriga nesta unidade mapeada. Este programa em si (digamos PROGRAM.EXE) funciona corretamente. É executado, pode criar arquivos e pastas, etc. Não há problema.

O problema surge quando o programa cria um arquivo temporário (por exemplo INVOICE.TXT) e tenta iniciar outro processo, que está imprimindo o arquivo de texto criado de uma maneira agradável. Segundo o desenvolvedor do programa, ele usa SHELL Z:\INVOICE.EXEpara iniciar esse processo. O que o programa mostra quando este é executado, é: Access denied.

O estranho é que, quando corro INVOICE.EXEmanualmente do Windows Explorer, tudo corre bem (ou seja, a fatura é impressa).

Eu gostaria de acrescentar que, quando os dois programas estão em um disco local ou em um disco compartilhado de outro host do Windows, tudo corre bem.

Não tenho idéia do que está errado. O que eu tentei até agora:

  • UAC desativado.
  • Adicionado o endereço IP do Synology nos sites confiáveis ​​do Internet Explorer.
  • Quando os dois programas estão em um disco local, tudo funciona bem.
  • Quando os dois programas estão em um compartilhamento de outra máquina Windows, tudo funciona bem.
  • Funcionou PROGRAM.EXEcomo administrador (isso funcionou somente após o compartilhamento de unidades mapeadas com todos os usuários ).
  • Alteradas as permissões da pasta, conforme mostrado na captura de tela. Seu conteúdo de diretório se parece com isso agora:

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

    Todas as subpastas e arquivos têm as mesmas permissões. O acompanhamento synoacltoolmostra isso para a pasta (e subpastas + arquivos):

    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)
    

Mas tudo sem fazê-lo funcionar ...


O PROGRAM.EXE pode executar o INVOICE.EXE com êxito quando o NAS não está envolvido? Por exemplo, copie os programas e todos os arquivos de dados necessários para a área de trabalho, remova o mapeamento de Z: e mapeie Z: para uma partição local (para que o programa BASIC não precise ser alterado para chamar INVOICE.EXE de um local diferente de Z :). Isso pode ajudar a isolar se o NAS está contribuindo para o problema ou não.
9788 Nickel

Respostas:


1

Tente desativar o SMBv2 no seu cliente Windows 7. Muitos usuários relatam problemas ao usar versões mais recentes do SMB com aplicativos herdados ou sistemas não Windows.

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

Deve ser executado como administrador e deve ser reiniciado para que os comandos entrem em vigor.


Gostaria de acrescentar que a opção Synology 'Ativar SMB2 e MTU grande' (na guia Serviços de arquivo do painel de controle) está ativada. Desativar esta opção também resolve o problema sem passar por todos os clientes.
hvtilborg
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.