Eu tenho a seguinte situação:
No meu entender, existem dois tipos de permissões com as quais tenho de lidar:
Ambos precisam permitir acesso de leitura / gravação para que a solução final funcione.
Agora, vamos supor que a pasta a ser compartilhada seja denominada C: \ SharedFolder . Com privilégios elevados, uso ferramentas de linha de comando para criar a pasta e, em seguida, fornecer o compartilhamento:
MD C: \ SharedFolder
NET COMPARTILHAR ShareName = C: \ SharedFolder / GRANT: Todos, Completo
icacls c: \ SharedFolder / grant: r * S-1-1-0: F
A etapa 1 cria a pasta, a etapa 2 cria o compartilhamento com as permissões de compartilhamento corretas e O passo 3 adiciona as permissões NTFS necessárias, certo? (note que " S-1-1-0 " é apenas o SID correspondente a "Everyone").
Com esses três passos, acabo com o compartilhamento desejado, mas quando me conecto ao compartilhamento de outra máquina, só tenho acesso somente leitura! Por que isso?
Se eu clicar com o botão direito do mouse na pasta compartilhada na máquina com Windows 7, recebo este:
Observequeacaixadeseleçãosomenteleituraestáumpoucomarcada!
Eupossofacilmenteresolverasituaçãoclicandonamarcasomenteleitura(seguidapor"OK" ou "Aplicar"), mas como posso fazer isso a partir do código? E por que isso é necessário?
Observe também que o comando NET SHARE usa o termo "Everyone" em sua chave / grant . Isso é problemático, porque em um Windows 7 alemão você deve escrever "Jeder" em vez de "Everyone", e em um Windows dinamarquês a palavra apropriada seria "Alle".
Esse problema de linguagem não é um problema no comando icacls , porque aqui eu posso usar o SID correspondente (como mostrado). Mas como posso fazer o comando NET SHARE funcionar para qualquer idioma também?
Tags windows-7 file-sharing