none
Script - Copiar Arquivo RRS feed

  • Pergunta

  • Pessoal preciso de um script que copie o arquivo "normal.dot" que esta no server para as estações no local "C:\Documents and Settings\usuario\Dados de aplicativos\Microsoft\Modelos"  de todos os usuarios do Documents and Settings.


    Rafael C. Silva
    quarta-feira, 20 de maio de 2009 20:48

Respostas

  • Ola,

    Faça os testes no script abaixo:

    Set objNetwork = CreateObject("Wscript.Network")
    strUserName    = objNetwork.UserName
    Set strFolder = CreateObject("Scripting.FileSystemObject")

    strOrigem = "\\servidor\compartilhamento\arquivo.dot"
    strCaminho =  "c:\Documents And Settings\" & strUserName & "\Dados de aplicativos\Microsoft\Modelos\"

    If strFolder.FolderExists (strCaminho) = False Then
       strFolder.CreateFolder (strCaminho)
       copiaArquivo strOrigem,strCaminho
    Else
       copiaArquivo strOrigem,strCaminho
    End If

    Sub CopiaArquivo(origem,Destino)

    strFolder.CopyFile origem , destino , true

    End Sub


    Faça os testes, e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta Rafael C. Silva segunda-feira, 8 de junho de 2009 12:41
    quinta-feira, 21 de maio de 2009 11:36
  • Olá,

    Você precisa colocar este script no log on dos usuários...

    Se você esta em uma rede com dominio... Crie uma GPO e coloque este script como script de log on...

    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    • Marcado como Resposta Rafael C. Silva segunda-feira, 8 de junho de 2009 12:45
    segunda-feira, 8 de junho de 2009 12:13

Todas as Respostas

  • Copia copia o script para "%appdata%\Microsoft\Modelos" pois a variável vai ajustar o caminho de acordo com o usuário.

    Espero ter ajudado.
    quarta-feira, 20 de maio de 2009 22:19
  • Ola,

    Faça os testes no script abaixo:

    Set objNetwork = CreateObject("Wscript.Network")
    strUserName    = objNetwork.UserName
    Set strFolder = CreateObject("Scripting.FileSystemObject")

    strOrigem = "\\servidor\compartilhamento\arquivo.dot"
    strCaminho =  "c:\Documents And Settings\" & strUserName & "\Dados de aplicativos\Microsoft\Modelos\"

    If strFolder.FolderExists (strCaminho) = False Then
       strFolder.CreateFolder (strCaminho)
       copiaArquivo strOrigem,strCaminho
    Else
       copiaArquivo strOrigem,strCaminho
    End If

    Sub CopiaArquivo(origem,Destino)

    strFolder.CopyFile origem , destino , true

    End Sub


    Faça os testes, e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta Rafael C. Silva segunda-feira, 8 de junho de 2009 12:41
    quinta-feira, 21 de maio de 2009 11:36
  • Jesiel ele so copia o arquivo para usuário que esta logado no momento.


    Rafael C. Silva
    • Sugerido como Resposta Kieronny quarta-feira, 18 de abril de 2012 18:20
    sábado, 6 de junho de 2009 14:39
  • Olá,

    Você precisa colocar este script no log on dos usuários...

    Se você esta em uma rede com dominio... Crie uma GPO e coloque este script como script de log on...

    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    • Marcado como Resposta Rafael C. Silva segunda-feira, 8 de junho de 2009 12:45
    segunda-feira, 8 de junho de 2009 12:13
  • Olá,

    Você precisa colocar este script no log on dos usuários...

    Se você esta em uma rede com dominio... Crie uma GPO e coloque este script como script de log on...

    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    Jesiel tenho dois scripts, um para copiar para pasta do windows em PT e outro em windows em INLGLES, vou deixar os dois executando no logon. Queria ocultar esta mensagem de erro ao executar o script.
    Rafael C. Silva
    segunda-feira, 8 de junho de 2009 13:05
  • Olá,

    Você pode criar de duas maneiras:

    Primeira opção:
    Criar um filtro WMI na GPO, para cada idioma. Exemplo:

    Select * from WIN32_OperatingSystem where OSLanguage='1046'
    O exemplo acima é para o portugues.


    Segunda opção:
    No próprio script você faz um if para a linguagem do S.O. Exemplo:

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colOperatingSystems = objWMIService.ExecQuery _
        ("Select * from Win32_OperatingSystem")

    For Each objOperatingSystem in colOperatingSystems
       if objOperatingSystem.OSLanguage = "1046" Then
          strCaminho =  "c:\Documents And Settings\" & strUserName & "\Dados de aplicativos\Microsoft\Modelos\"
       Else
          strCaminho =  "c:\Documents And Settings\" & strUserName & "\Application Data\Microsoft\Models\"
       End if
    Next


    Set objNetwork = CreateObject("Wscript.Network")
    strUserName    = objNetwork.UserName
    Set strFolder = CreateObject("Scripting.FileSystemObject")

    strOrigem = "\\servidor\compartilhamento\arquivo.dot"

    If strFolder.FolderExists (strCaminho) = False Then
       strFolder.CreateFolder (strCaminho)
       copiaArquivo strOrigem,strCaminho
    Else
       copiaArquivo strOrigem,strCaminho
    End If

    Sub CopiaArquivo(origem,Destino)

    strFolder.CopyFile origem , destino , true

    End Sub



    Faça os testes e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    segunda-feira, 8 de junho de 2009 14:04
  • Jesiel,

    Eu tenho aqui na empresa o Windows 7 português e inglês e o Windows Xp em português será que tem algum script para esses 3 sistemas?
    Att.,
    Lessandro Zampieri
    quinta-feira, 22 de outubro de 2009 11:54
  • Olá,

    O windows 7 inglês é 1033.

    Execute o script abaixo para descubrir:

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colOperatingSystems = objWMIService.ExecQuery _
        ("Select * from Win32_OperatingSystem")

    For Each objOperatingSystem in colOperatingSystems

        Wscript.Echo "OS Language: " & objOperatingSystem.OSLanguage
     
    Next


    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    quinta-feira, 22 de outubro de 2009 13:24
  • Olá,

    Executei o script abaixo mas ele da erro


    Script: .....
    Line: 16
    Char: 1
    Error: Unexpected 'Next'
    Code: 800A041F
    Source: Microsoft VBScript compilation error



    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colOperatingSystems = objWMIService.ExecQuery _
        ("Select * from Win32_OperatingSystem")

    For Each objOperatingSystem in colOperatingSystems
       if objOperatingSystem.OSLanguage = "1046" Then
          strCaminho =  "c:\Documents And Settings\" & strUserName & "\Dados de aplicativos\Microsoft\"
       if objOperatingSystem.OSLanguage = "1033" Then
          strCaminho =  "C:\Users\& strUserName &\AppData\Local\Microsoft"
       Else
          strCaminho =  "c:\Documents And Settings\" & strUserName & "\Application Data\Microsoft\"
       End if

    Next

    Set objNetwork = CreateObject("Wscript.Network")
    strUserName    = objNetwork.UserName
    Set strFolder = CreateObject("Scripting.FileSystemObject")

    strOrigem = \\servidor\compartilhamento\arquivo.dot

    If strFolder.FolderExists (strCaminho) = False Then
       strFolder.CreateFolder (strCaminho)
       copiaArquivo strOrigem,strCaminho
    Else
       copiaArquivo strOrigem,strCaminho
    End If

    Sub CopiaArquivo(origem,Destino)

    strFolder.CopyFile origem , destino , true

    End Sub

     

    quinta-feira, 22 de outubro de 2009 13:39
  • Olá,

    Utilize "elseif".

    Conforme o exemplo abaixo:

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colOperatingSystems = objWMIService.ExecQuery _
        ("Select * from Win32_OperatingSystem")

    For Each objOperatingSystem in colOperatingSystems
       if objOperatingSystem.OSLanguage = "1046" Then
          strCaminho =  "c:\Documents And Settings\" & strUserName & "\Dados de aplicativos\Microsoft\"
       elseif objOperatingSystem.OSLanguage = "1033" Then
          strCaminho =  "C:\Users\& strUserName &\AppData\Local\Microsoft"
       Else
          strCaminho =  "c:\Documents And Settings\" & strUserName & "\Application Data\Microsoft\"
       End if

    Next


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    quinta-feira, 22 de outubro de 2009 17:17
  • Jesiel,

    Executei o script a baixo e contiua com erro, pode me ajudar?

    ____________________________________________________________________
    Linha:25
    Caract:4
    Erro: Caminho não encotrado
    Código: 800A004C
    Origem: Erro de tempo de execução do Microsoft VBScript
    ____________________________________________________________________


    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colOperatingSystems = objWMIService.ExecQuery _
        ("Select * from Win32_OperatingSystem")

    For Each objOperatingSystem in colOperatingSystems
       if objOperatingSystem.OSLanguage = "1046" Then
          strCaminho =  "c:\Documents And Settings\%UserName%\Dados de aplicativos\Microsoft\"
       elseif objOperatingSystem.OSLanguage = "1033" Then
          strCaminho =  "C:\Users\%UserName%\AppData\Local\Microsoft"
       Else
          strCaminho =  "c:\Documents And Settings\%UserName%\\Application Data\Microsoft\"
       End if
    Next

    Set objNetwork = CreateObject("Wscript.Network")
    strUserName    = objNetwork.UserName
    Set strFolder = CreateObject("Scripting.FileSystemObject")

    strOrigem = \\servidor

    If strFolder.FolderExists (strCaminho) = False Then
       strFolder.CreateFolder (strCaminho)
       copiaArquivo strOrigem,strCaminho
    Else
       copiaArquivo strOrigem,strCaminho
    End If

    Sub CopiaArquivo(origem,Destino)

    strFolder.CopyFile origem , destino , true

    End Sub


    Att.,
    Lessandro Zampieri

    terça-feira, 27 de outubro de 2009 13:03
  • Olá Lessandro 

    Após o primeiro Else precisa tirar uma barra (\\Application Data...) tem que fica \Application Data...\...


    Abraço.

    Cossa
    terça-feira, 27 de outubro de 2009 15:02
  • Ola,

    Faça os testes no script abaixo:

    Set objNetwork = CreateObject("Wscript.Network")
    strUserName    = objNetwork.UserName
    Set strFolder = CreateObject("Scripting.FileSystemObject")

    strOrigem = "\\servidor\compartilhamento\arquivo.dot"
    strCaminho =  "c:\Documents And Settings\" & strUserName & "\Dados de aplicativos\Microsoft\Modelos\"

    If strFolder.FolderExists (strCaminho) = False Then
       strFolder.CreateFolder (strCaminho)
       copiaArquivo strOrigem,strCaminho
    Else
       copiaArquivo strOrigem,strCaminho
    End If

    Sub CopiaArquivo(origem,Destino)

    strFolder.CopyFile origem , destino , true

    End Sub


    Faça os testes, e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    Utilizei o seu Script e tudo ocorreu como esperado, obrigado.
    sexta-feira, 18 de dezembro de 2009 16:14
  • Opa, tudo bom, Jesiel...

    TO com uma pequena duvida a respeito desse seu vbscript..


    Estou tentando adapta-lo a rodar em nossas maquinas aki num dominio em win2k3, temos maquinas com WINXP, WinVista, e agora as recem lancadas com Win7.


    A algum tempo ja utilizo um script em batch para copia dos arquivos pessoais para o servidor, esse processo vem funcionando muito bem, ate a entrada dessas maquinas com Win7, no win7, o script nao funciona, se coloco no final do xcopy a opção de geral um arquivo de log, ele nem gera, isso que o batch está como script de logoff, via GPO.


    Já tentei utilizar o robocopy, mas no win7 a versão do robocopy e diferente e nao estou conseguindo fazer ele funcionar..


    Agora estou estudando seu script, e teria como eu colocar mais duas formas de seleção, pois nao sei se as maquinas que tenho em x64 irao aceitar esse script, e nao estou com disponibilidade de testar com o usuario, pois se trata do meu CEO, então desde que o script ta com problema, eu rodo o xcopy manualmente via cmd na maquina do CEO, pois nem o colocando via script local ele roda.

    Então teria que copiar os seguintes dados da maquina, que seria, Meus Documentos, Desktop, e o pst, e fora isso selecionar entre winxp, winvista, e win7, e tbm entre maquinas em x86 e x64. é possivel esse script?


    terça-feira, 5 de janeiro de 2010 20:17