Compartilhando uma pasta com acesso total no Windows 7

3

Eu tenho a seguinte situação:

  • Eu preciso compartilhar uma pasta na raiz da unidade C: em uma máquina com Windows 7.
  • O compartilhamento deve fornecer acesso de leitura / gravação para qualquer pessoa em outras máquinas na rede local.
  • A máquina com Windows 7 não faz parte de um domínio.
  • Eu preciso estabelecer o compartilhamento do código (ferramentas de linha de comando).
  • Se for possível, o código deve funcionar em qualquer instalação localizada do Windows 7

No meu entender, existem dois tipos de permissões com as quais tenho de lidar:

  • Permissões de compartilhamento e
  • Permissões NTFS .

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:

  1. MD C: \ SharedFolder

  2. NET COMPARTILHAR ShareName = C: \ SharedFolder / GRANT: Todos, Completo

  3. 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?

    
por garyjohn 18.04.2013 / 12:40

0 respostas