none
Script para criação de pastas para cada usuário do AD RRS feed

  • Pergunta

  • Pessoal, estou implantando um novo servidor de arquivos e quero criar uma pasta para cada usuário de minha rede para que possam armazenar seus arquivos lá.

    Tem algum script que faça isso, crie uma pasta nesse servidor já com o nome do usuário e com as permissões corretas?

     

    Obrigado.

    segunda-feira, 29 de agosto de 2011 13:45

Respostas

  • Rafaeil,

    Segue um script que pode ajudar vc, só não deve ser exatamente porque vc não passou mais detalhes (Permissões corretas podem variar de empresa para empresa...)

    Mas ficou fácil para vc acertar a sua maneira.

    é um .BAT

     

    set DIR_USURIOS=C:\TEMP
    SET DOMINIO=ULTRACENTER
    
    DSQUERY USER -LIMIT 5000 | DSGET USER -SAMID > USERS.TXT
    
    FOR /F %%U IN (users.txt) DO (
    
    	MD "%DIR_USURIOS%\%%U"
    	CACLS "%DIR_USURIOS%\%%U" /E /G %DOMINIO%\%%U:F
    
    )
    

    Na primeira linha vc coloca a raiz de onde ficarão as pastas dos usuários (um caminho local caso vc execute o script de dentro do File Server ou \\seuservidor\seushare caso o script seja executado de fora do File server"

     

    Na segunda linha o nome Netbios do seu dominio

    A terceira linha gera um arquivo com todos os usuários, se vc não precisar de todos modifique os filtros do DSQUERY.

    Por ultimo um FOR que lê cada linha do USERS.txt e então cria o diretorio com o comando MD e em seguida dá FULL Control para o usuário na pasta recem criada (ajuste esta linha para satisfazer suas permissões corretas)

    Ref.: CACLS http://ss64.com/nt/cacls.html

     

     


    Fábio de Paula Junior
    segunda-feira, 29 de agosto de 2011 15:34
    Moderador
  • Acrescente na linha após o CACLS o comando abaixo

     

    dsquery user -samid %%U | dsmod user -hmdrv "X:" -hmdir %DIR_USURIOS%\$username$

     

    Veja que utilizei o X: como mapeamento. A variavel $username$ faz parte da sintaxe do dsmod.

    Ref.: http://technet.microsoft.com/pt-br/library/cc732954(WS.10).aspx


    Fábio de Paula Junior
    segunda-feira, 29 de agosto de 2011 18:59
    Moderador

Todas as Respostas

  • Rafaeil,

    Segue um script que pode ajudar vc, só não deve ser exatamente porque vc não passou mais detalhes (Permissões corretas podem variar de empresa para empresa...)

    Mas ficou fácil para vc acertar a sua maneira.

    é um .BAT

     

    set DIR_USURIOS=C:\TEMP
    SET DOMINIO=ULTRACENTER
    
    DSQUERY USER -LIMIT 5000 | DSGET USER -SAMID > USERS.TXT
    
    FOR /F %%U IN (users.txt) DO (
    
    	MD "%DIR_USURIOS%\%%U"
    	CACLS "%DIR_USURIOS%\%%U" /E /G %DOMINIO%\%%U:F
    
    )
    

    Na primeira linha vc coloca a raiz de onde ficarão as pastas dos usuários (um caminho local caso vc execute o script de dentro do File Server ou \\seuservidor\seushare caso o script seja executado de fora do File server"

     

    Na segunda linha o nome Netbios do seu dominio

    A terceira linha gera um arquivo com todos os usuários, se vc não precisar de todos modifique os filtros do DSQUERY.

    Por ultimo um FOR que lê cada linha do USERS.txt e então cria o diretorio com o comando MD e em seguida dá FULL Control para o usuário na pasta recem criada (ajuste esta linha para satisfazer suas permissões corretas)

    Ref.: CACLS http://ss64.com/nt/cacls.html

     

     


    Fábio de Paula Junior
    segunda-feira, 29 de agosto de 2011 15:34
    Moderador
  • Obs.: A linha do DSQUERY adiciona duas linhas que não são usuários (a primeira "samid" e a ultima "dsget...") , apague estes diretórios manulamente após a execução do script ou coloque o comando de apagar no final do script.
    Fábio de Paula Junior
    segunda-feira, 29 de agosto de 2011 15:36
    Moderador
  • Obrigado Fábio,

    Era isso mesmo que eu queria....

     

    Abs

    segunda-feira, 29 de agosto de 2011 18:20
  • Fabio,

    Só mais uma coisa, há alguma forma de alterar o perfil do usuário, indicando o home folder do usuário de acordo com o script criado acima?

     

    Abs

    segunda-feira, 29 de agosto de 2011 18:46
  • Acrescente na linha após o CACLS o comando abaixo

     

    dsquery user -samid %%U | dsmod user -hmdrv "X:" -hmdir %DIR_USURIOS%\$username$

     

    Veja que utilizei o X: como mapeamento. A variavel $username$ faz parte da sintaxe do dsmod.

    Ref.: http://technet.microsoft.com/pt-br/library/cc732954(WS.10).aspx


    Fábio de Paula Junior
    segunda-feira, 29 de agosto de 2011 18:59
    Moderador
  • Funcionou perfeitamente.

     

    Obrigado.

    segunda-feira, 29 de agosto de 2011 19:17