none
Script VBS para criar pasta do usuário e mapear unidades de rede. RRS feed

  • Pergunta

  • Olá pessoal,

    Bom sou novo com script e não tenho nenhum conhecimento com Scripts...

    Mas gostaria de criar um script em VBS para criar a pasta do usuário assim que ele se logar e mapear a pasta dele e mais algumas unidades...

    Seria assim \\servidor\departamentos\ dentro da pasta deparatamentos os respectivos departamentos que tenho aqui na empresa como "vendas, compras, financeiro etc..." 
     
    Quero criar um script para que cada usuário que se logar criar a sua pasta dentro do seu respectivo deparatamento e mapea-lá e mais algumas unidades de rede também...

    Ficando assim por exemplo \\servidor\departamentos\financeiro\usuário e já deixando a pasta mapeada e mais algumas unidades que tenho aqui como \\servidor\sistema

    Gostaria de deixar assim para que o usuário tivesse acesso já direto a pasta dele e não ver a pasta de outros deparatamentos e usuários para que não fique com a curiosidade agusada...

    No aguardo de uma resposta,

    Eric Martins.
    segunda-feira, 2 de março de 2009 17:31

Respostas

  • Olá Eric,

    Vamos tentar solucionar a questao da permissão, acho que é mais funcional.

    Entra com um usuário de um cliente que está dando esta mensagem e tente criar uma pasta no caminho que você falou.. Veja se você consegue.

    Você pode entrar no server onde esta o compartilhamento, entra nas propriedades da pasta, segurança, botão avançado, guia permissões efetivas.

    Lá você coloca um usuário e vê se ele tem permissão de criar pasta no servidor.

    Só uma observação: Para configurar permissão de compartilhamento, você tem que configurar a guia segurança e na guia compartilhamento tem o botão permissões que tem que ser configurado também.

    Outra observação, para permissões o que vale é a mais restritiva, ou seja, se na guia segurança esta permitindo tudo e na guia compartilhamento estiver negando tudo, vai negar tudo.

    Testa aí, se não funcionar nada.. te passo um script para criar pasta de acordo com o login do usuário.

    Poste os resultados

    Até mais,

    Jesiel

    Obs.: Se útil, classifique as respostas

    • Marcado como Resposta Eric Martins quarta-feira, 4 de março de 2009 17:51
    terça-feira, 3 de março de 2009 14:14
  • Eric

    segue abaixo um script que efetua a criação do diretorio, porem para que o mesmo funcione com sucesso o usuario deve ter acesso de criar diretorios no diretorio compartilhado no file server


    Set wshell = createobject("wscript.network")
    user1 = wshell.username

    Set FileClass = CreateObject("Scripting.FileSystemObject")

    Directory = "\\FileServer\User\" & user1

    If FileClass.FolderExists (Directory) = False Then
    FileClass.CreateFolder (Directory)
    End If




    • Marcado como Resposta Eric Martins quarta-feira, 4 de março de 2009 17:51
    terça-feira, 3 de março de 2009 14:15
  • Boa tarde Jesiel,

    Cara desculpa pela demora, pois apareceu outros problemas, mas graves e já resolvi...

    Jesiel muito obrigado pela sua atenção, pois funcionou e o problema de não criar a pasta pelo perfil do usário com a variável %UserName% foi justamente aonde você descreveu nas permissões de "Compartilhamento" aonde estava mais restritiva.

    Mesmo assim vou guardar o seu Script para criar a pasta do usuário, pois funciona também.

    Mais uma vez muito obrigado por compartilhar seus conhecimentos,


    Eric Martins.
    • Marcado como Resposta Eric Martins quarta-feira, 4 de março de 2009 17:51
    quarta-feira, 4 de março de 2009 17:48

Todas as Respostas

  • Olá Eric,

    Para mapear uma pasta para os usuários, você pode fazer nas propriedades do AD, guia profile, Home folder.

    Você pode colocar o caminho como no exemplo: \\server\share\%username%
    e para mapear você coloca o mesmo caminho.

    Ou segue abaixo por script vbs:



    Set wshNetwork = CreateObject("WScript.Network")
    Set oDrives = WshNetwork.EnumNetworkDrives

    'COLOCAR AS UNIDADES QUE DESEJA MAPEAR -> AQUI ELE SO DESCONECTA
    DriveMapper "G:"

    wshNetwork.MapNetworkDrive "G:", "\\server\share"

    Sub DriveMapper(Drive)
    For i = 0 to oDrives.Count -1 Step 2
    if LCase(Drive) = LCase(oDrives.Item(i)) then
    WshNetwork.RemoveNetworkDrive Drive, true, true
    End if
    Next
    End sub

    Salve com a extensao vbs e altere a unidade de mapemanto e o caminho.

    Faça os testes e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    segunda-feira, 2 de março de 2009 19:25
  • Bom dia Jesiel,

    Muito obrigado, pois o seu script para criar os mapeamentos funionou!

    Eu não estou criando a pasta do usuario pelo AD pois está dando uma mensagem que é a seguinte:

    " A pasta base \\servidor\compras\usuário não foi criada porque você não tem acesso de criação no servidor. A conta de usuário foi atualizada com o novo valor de pasta base, mas você precisa criar a pasta manualmente após obter os direitos de acesso necessários. "

    Eu já dei acesso ao usuário e ao grupo do usuário que ele pertence na pasta e mesmo assim não deu certo.

    A versão do meu sever é: Microsoft Windows Small Business Server 2003 Standard Edition
    Versão 5.2.3790.

    E por isso que eu pedi o script para criar a pasta do usário quando ele se logar.

    Se puder me ajudar com este erro ou me passar o script para criar a pasta do usuário e juntar com este que você me passou eu agradeço.

    No aguardado de um resposta,

    Eric Martins.


    terça-feira, 3 de março de 2009 13:46
  • Olá Eric,

    Vamos tentar solucionar a questao da permissão, acho que é mais funcional.

    Entra com um usuário de um cliente que está dando esta mensagem e tente criar uma pasta no caminho que você falou.. Veja se você consegue.

    Você pode entrar no server onde esta o compartilhamento, entra nas propriedades da pasta, segurança, botão avançado, guia permissões efetivas.

    Lá você coloca um usuário e vê se ele tem permissão de criar pasta no servidor.

    Só uma observação: Para configurar permissão de compartilhamento, você tem que configurar a guia segurança e na guia compartilhamento tem o botão permissões que tem que ser configurado também.

    Outra observação, para permissões o que vale é a mais restritiva, ou seja, se na guia segurança esta permitindo tudo e na guia compartilhamento estiver negando tudo, vai negar tudo.

    Testa aí, se não funcionar nada.. te passo um script para criar pasta de acordo com o login do usuário.

    Poste os resultados

    Até mais,

    Jesiel

    Obs.: Se útil, classifique as respostas

    • Marcado como Resposta Eric Martins quarta-feira, 4 de março de 2009 17:51
    terça-feira, 3 de março de 2009 14:14
  • Eric

    segue abaixo um script que efetua a criação do diretorio, porem para que o mesmo funcione com sucesso o usuario deve ter acesso de criar diretorios no diretorio compartilhado no file server


    Set wshell = createobject("wscript.network")
    user1 = wshell.username

    Set FileClass = CreateObject("Scripting.FileSystemObject")

    Directory = "\\FileServer\User\" & user1

    If FileClass.FolderExists (Directory) = False Then
    FileClass.CreateFolder (Directory)
    End If




    • Marcado como Resposta Eric Martins quarta-feira, 4 de março de 2009 17:51
    terça-feira, 3 de março de 2009 14:15
  • Boa tarde Jesiel,

    Cara desculpa pela demora, pois apareceu outros problemas, mas graves e já resolvi...

    Jesiel muito obrigado pela sua atenção, pois funcionou e o problema de não criar a pasta pelo perfil do usário com a variável %UserName% foi justamente aonde você descreveu nas permissões de "Compartilhamento" aonde estava mais restritiva.

    Mesmo assim vou guardar o seu Script para criar a pasta do usuário, pois funciona também.

    Mais uma vez muito obrigado por compartilhar seus conhecimentos,


    Eric Martins.
    • Marcado como Resposta Eric Martins quarta-feira, 4 de março de 2009 17:51
    quarta-feira, 4 de março de 2009 17:48
  • Olá Eric,

    Bacana que funcionou.... fico feliz.

    Precisando estamos aí!!!

    Abraços.

    Jesiel
    quarta-feira, 4 de março de 2009 18:26
  • Pessoal,

    Desculpem por desenterrar o tópico.
    Estou tentando fazer o mesmo procedimento venho tendo alguns problemas.

    Vou contar o "causo" por inteiro.
    Existe um servidor de arquivos e eu criei uma pasta compartilhada chamada "usuarios" com permissão pra domain users poderem criar pastas dentro desta pasta. No perfil de cada usuario do AD inclusive nos novos, adicionei o home folder como \\fileserver\usuarios\%username% e escolhi a letra U. Até ai tudo bem, funcionou perfeito, criaram-se sozinhas todas as pastas dos usuarios do AD em \\fileserver\usuarios e todos eles ficaram com a letra U mapeada OK em suas estações.

    O problema é que dentro dessas pastas pessoais surgiu uma subpasta Windows (que contem uma system) e alguns arquivos dentro. Mesmo apagando, elas voltam. Após pesquisar o assunto, vi que se tratava de uma característica do proprio windows e sua estrutura de perfis, e não havia soluçao pra desativar a criação automática dessa pasta Windows, então resolvi achar uma solução alternativa pra nao ter que alterar o home folder pelas propriedades do usuario no AD. Me veio na cabeça usar VBS e comecei a correr atrás.

    Achei este topico aqui e estou testando os scripts sugeridos, só que não consigo de jeito nenhum fazer funcionar.
    Ao executar este aqui:

    Set wshell = createobject("wscript.network")
    user1 = wshell.username

    Set FileClass = CreateObject("Scripting.FileSystemObject")

    Directory = "\\FileServer\usuarios\" & user1

    If FileClass.FolderExists (Directory) = False Then
    FileClass.CreateFolder (Directory)
    End If

    Me retorna erro de Permission Denied 800A0046 na linha 9, Char 1.
    Essa linha é justamente a "FileClass.CreateFolder (Directory)".

    O caminho \\fileserver\usuarios\ está com permissão de criação de pasta para todos os Domain Users, logo nao deveria haver problema pro script criar uma pasta la dentro. Inclusive se eu logar com um usuario normal do AD em qualquer estação aqui da empresa, acessar \\fileserver\usuarios\ e criar uma nova pasta na mão, eu consigo.

    Alguem pode me ajudar?

    Obrigado

     

    Henrique Steppan
    MCP
    MCDST
    MCSA 2003
    MCITP Server Administrator

    sexta-feira, 24 de junho de 2011 14:09
  • Pessoal,

    Desculpem por desenterrar o tópico.
    Estou tentando fazer o mesmo procedimento venho tendo alguns problemas.

    Vou contar o "causo" por inteiro.
    Existe um servidor de arquivos e eu criei uma pasta compartilhada chamada "usuarios" com permissão pra domain users poderem criar pastas dentro desta pasta. No perfil de cada usuario do AD inclusive nos novos, adicionei o home folder como \\fileserver\usuarios\%username% e escolhi a letra U. Até ai tudo bem, funcionou perfeito, criaram-se sozinhas todas as pastas dos usuarios do AD em \\fileserver\usuarios e todos eles ficaram com a letra U mapeada OK em suas estações.

    O problema é que dentro dessas pastas pessoais surgiu uma subpasta Windows (que contem uma system) e alguns arquivos dentro. Mesmo apagando, elas voltam. Após pesquisar o assunto, vi que se tratava de uma característica do proprio windows e sua estrutura de perfis, e não havia soluçao pra desativar a criação automática dessa pasta Windows, então resolvi achar uma solução alternativa pra nao ter que alterar o home folder pelas propriedades do usuario no AD. Me veio na cabeça usar VBS e comecei a correr atrás.

    Achei este topico aqui e estou testando os scripts sugeridos, só que não consigo de jeito nenhum fazer funcionar.
    Ao executar este aqui:

    Set wshell = createobject("wscript.network")
    user1 = wshell.username

    Set FileClass = CreateObject("Scripting.FileSystemObject")

    Directory = "\\FileServer\usuarios\" & user1

    If FileClass.FolderExists (Directory) = False Then
    FileClass.CreateFolder (Directory)
    End If

    Me retorna erro de Permission Denied 800A0046 na linha 9, Char 1.
    Essa linha é justamente a "FileClass.CreateFolder (Directory)".

    O caminho \\fileserver\usuarios\ está com permissão de criação de pasta para todos os Domain Users, logo nao deveria haver problema pro script criar uma pasta la dentro. Inclusive se eu logar com um usuario normal do AD em qualquer estação aqui da empresa, acessar \\fileserver\usuarios\ e criar uma nova pasta na mão, eu consigo.

    Alguem pode me ajudar?

    Obrigado

     

    Henrique Steppan
    MCP
    MCDST
    MCSA 2003
    MCITP Server Administrator

    boa tarde estou com uma dúvida existe por acaso uma linha de comando pra que eu possa mudar o rotulo de uma unidade  para que ela não fica dados em servidor mais sim como DADOS ou etc ...
    quarta-feira, 24 de agosto de 2011 16:48
  • Segue script para lhe ajudar...

       

    'Criar Pasta como o nome do usuario
    Set wshell = createobject("wscript.network")
    user1 = wshell.username
    Set FileClass = CreateObject("Scripting.FileSystemObject")
    Directory = "\\endServer\public\" &user1
    If FileClass.FolderExists (Directory) = False Then
    FileClass.CreateFolder (Directory) 
    end if
    'Finaliza criar pasta
    'Criar Atalho da pasta na area de trabalho do usuario
    On Error Resume Next 

     Dim objShell 
    Dim objDesktop 
    Dim  objLink 
    Dim strAppPath 
    Dim strWorkDir 
    Dim strIconPath

    strWorkDir ="\\endServer\public" 
    strAppPath = "\\endServer\public\"&user1
    strIconPath = "\\endServer\public\ico2.ico" 'Cola um ico diferente ao atalho   

    Set objShell = CreateObject("WScript.Shell") 
    objDesktop = objShell.SpecialFolders("Desktop") 
    Set objLink = objShell.CreateShortcut(objDesktop & "\Meus Arquivos.lnk")  

    objLink.Description = "Pasta Arquivos Pessoais "&user1
    objLink.IconLocation = strIconPath  
    objLink.TargetPath = strAppPath 
    objLink.WindowStyle = 3 
    objLink.WorkingDirectory = strWorkDir 
    objLink.Save
    'Fim script

    Espero que ajude Wesley alves


    weslac


    • Editado Wesley Alves terça-feira, 17 de julho de 2012 19:00
    terça-feira, 17 de julho de 2012 18:58
  • Modifiquei da seguinte forma pra eu usar e não deu certo, dá os seguinte erros:

    linha: 7
    caract: 1
    Erro: Caminho não encontrado

    ----------------------------------------------------------------------------------------------------------

    'Criar Pasta como o nome do usuario
    Set wshell = createobject("wscript.network")
    user1 = wshell.username
    Set FileClass = CreateObject("Scripting.FileSystemObject")
    Directory = "\\servidor\usuarios\" &user1 'ESSA É A PASTA QUE ESTÁ COMPATILHADA
    If FileClass.FolderExists (Directory) = False Then
    FileClass.CreateFolder (Directory) 
    end if
    'Finaliza criar pasta
    'Criar Atalho da pasta na area de trabalho do usuario
    On Error Resume Next 

     Dim objShell 
    Dim objDesktop 
    Dim  objLink 
    Dim strAppPath 
    Dim strWorkDir 
    Dim strIconPath

    strWorkDir ="\\servidor\usuarios" 
    strAppPath = "\\servidor\usuarios\"&user1
    strIconPath = "\\servidor\usuarios\ico2.ico" 'Cola um ico diferente ao atalho   

    Set objShell = CreateObject("WScript.Shell") 
    objDesktop = objShell.SpecialFolders("Desktop") 
    Set objLink = objShell.CreateShortcut(objDesktop & "\Meus Arquivos.lnk")  

    objLink.Description = "Pasta Arquivos Pessoais "&user1
    objLink.IconLocation = strIconPath  
    objLink.TargetPath = strAppPath 
    objLink.WindowStyle = 3 
    objLink.WorkingDirectory = strWorkDir 
    objLink.Save
    'Fim script

    ---------------------------------------------------------------------------------------------------------
    Obrigado!

    quinta-feira, 17 de janeiro de 2013 18:47
  • Boa tarde pessoal,

    preciso de uma ajuda aqui para criar um script.bat:

    no disco c: tenho várias pastas com o nome de vários concelhos, dentro dessas pastas tenho uma pasta para cadastro e outra para mapas, dentro de cadastro tenho ficheiros de extensão dwg e dentro da pasta mapas, 3 pastas ( manutenção, Ramais e Rede), e cada pasta tem ficheiros PDF.

    gostava de criar um script para criar automaticamente a seguinte estrutura para gravar um cd:

    "concelho" ( pasta )
    dentro de concelho - uma pasta "cadastro" ( com os ficheiros dwg )
    ainda dentro de concelho uma pasta " mapas " com as pastas (manutenção, ramais e rede) e cada uma com os pdfs lá dentro.
    depois preciso disto para fazer para vários concelhos...ou seja ...ao clicar no script ele vai fazer este passo e cria estas pastas para vários concelhos automaticamente..no cd..


    exemplo: Agueda( pasta ) - dentro desta:
    cadastro (pasta) - dentro desta os ficheiros dwg
    mapas(pasta) - dentro desta: Manutenção ( pasta ) - com os pdfs
    rede ( pasta ) - com os pdfs
    ramais ( pasta ) - com os pdfs 

    Coimbra (pasta).....etc...


    é tipo..clico nele e ele copia apenas esta informação toda para o cd..com esta estruturação.
    ..se houvesse forma de ele apenas criar as pastas com a informação era o ideal...tipo...se não existir pasta manutenção ele não cria...só se ela lá estiver.


    Cumprimentos,

    Agradeço ajuda..

    obrigado.
    sábado, 1 de março de 2014 12:00