none
Script para alterar o nome das pastas dos usuários RRS feed

  • Discussão Geral

  • Bom dia amigos,

    Estamos em período de migração de domínio na empresa e toda nomenclatura de logon dos usuários vai ser alterada para primeiro.últimonome@company.local
    Todos os usuários já possuem uma home folder, esta home folder era mapeada através de um script que buscava o %username% das contas no AD, portanto, este era o nome da pasta, nome este, que será alterado com a migração do domínio.
    Minha pergunta é, se alguém conhece um Script que possa comparar o nome antigo das pastas e alterar para o nome novo de logon dos usuários.
    Este script deve ser capaz de verificar o nome de uma pasta e de alterar o mesmo com o novo logon de usuário.
    Vale ressaltar que toda home folder já possui, muitas delas, pelo menos 1 GB de conteúdo.

    Exemplo:

    User: João Silva Lopes
    Logon atual: Joao.silva
    nome da home folder: joao.silva


    após Migração

    user: João Silva Lopes
    Logon: Joao.lopes

    Alterar nome da home folder "joao.silva" para "Joao.lopes"


    Agradeço desde já a atenção de todos.



    • Editado Lísias Feliz quinta-feira, 11 de junho de 2009 07:17
    • Tipo Alterado Lísias Feliz sexta-feira, 4 de junho de 2010 19:09 cancelado
    quinta-feira, 11 de junho de 2009 07:07

Todas as Respostas

  • Pra vc fazer o que vc precisa, primeiro vc devera exportar os seus usuarios atuais em um arquivo de texto, ai depois vc edita o arquivo de texto com o nome de usuario novo que vc quer alterar separando os por algum delimitador, ficaria mais ou menos assim:

    joao.silva#joao.lopes
    david.fernando#david.saes
    .
    .
    .

    Ai depois utilizando FSO vc le o arquivo texto e ele se encaminha do resto...

    Ficaria mais ou menos assim:

    Const ForReading = 1
    Const TristateUseDefault = -2

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    Set fileSrc = objFSO.GetFile("C:\usuarios.txt")

    Set oStream = fileSrc.OpenAsTextStream(ForReading, TristateUseDefault)

    Dim sLinha

    Do While Not oStream.AtEndOfStream
      sLinha = oStream.ReadLine
      objFSO.MoveFolder "C:\FSO\" & Left(sLinha,instr(slinha,"#")-1), "C:\FSO\" & Right(sLinha,Len(sLinha)-instr(slinha,"#"))
    Loop


    Abraços,

    David Saes
    sexta-feira, 12 de junho de 2009 15:41