Usuário com melhor resposta
Script - Copiar Arquivo

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
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
-
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
Todas as 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
-
-
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
-
Olá,
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.
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
Rafael C. Silva -
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 -
-
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
-
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 ifNext
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 IfSub CopiaArquivo(origem,Destino)
strFolder.CopyFile origem , destino , true
End Sub
-
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
-
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
NextSet 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 IfSub CopiaArquivo(origem,Destino)
strFolder.CopyFile origem , destino , true
End Sub
Att.,
Lessandro Zampieri -
-
Ola,
Utilizei o seu Script e tudo ocorreu como esperado, obrigado.
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
-
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?