Usuário com melhor resposta
Script Sobrepondo Saidas

Pergunta
-
Opa Pessoal!!
Gostaria de uma ajuda, tenho .vbs que coleta informacoes de username data hora e computador que o usuario logou.
Porem, a cada logon valido de usuario, uma saida está sobrepondo a outra....
Por exemplo se 10 usuarios logam, cada logon sobrepoe os dados no arquivo .txt
sendo que eu preciso que fiquem todos em um unico arquivo dividido por data.
Outro problema é que ele pega a configuracao regional do cliente, e nao a do servidor, e as datas as vezes ficam no padrao do brasil, e as vezes no padrao dos EUA.
Segue o script abaixo :
Dim objArq, strArquivo, objArquivo, datahoje
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WSHNetwork = CreateObject("WScript.Network")
datahoje = date
datahoje = replace(datahoje,"/", "_")
strUsuario = WSHNetwork.UserName
strComputador = WSHNetwork.ComputerName
'strArquivo = strUsuario & "_" & strComputador & ".txt"
strArquivo = datahoje&"_Log_User.txt"Set objArq = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists( strArquivo ) then
Set objArquivo = objArq.OpenTextFile( "\\server\share$\" & strArquivo, 8, True)
Else
Set objArquivo = objArq.CreateTextFile( "\\server\share$\" & strArquivo, True)
End If'objArquivo.WriteLine( "Logon : " & Now )
objArquivo.WriteLine(Now & " " & " Usuário : " & strUsuario & " Computador :"& strComputador)
objArquivo.Close
Respostas
-
Fiz duas alterações.(em negrito)
Na primeira formatei a data de forma que sempre exiba dd_mm_yyyy.
Em seguida retirei aquela verificação do arquivo existente. Utilizando o método OpenTextFile com o terceiro parametro igual a TRUE (vc já estava utilizando) ele cria o arquivo caso ele não exista. O segundo parametro com valor 8 é o que diz que ele tem que "apendar".
Rodei o script 3 vezes e ele não apagou o arquivo e sim "apendou" os registro
----------- Exemplo do arquivo que gerei.
19/05/2011 14:59:33 Usuário : fpjunior Computador :XYZ
19/05/2011 14:59:39 Usuário : fpjunior Computador :XYZ
19/05/2011 14:59:40 Usuário : fpjunior Computador :XYZ-----------------
Dim objArq, strArquivo, objArquivo, datahoje
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WSHNetwork = CreateObject("WScript.Network")
datahoje = date
datahoje = day(datahoje) & "_" & month(datahoje) & "_" & year(datahoje)
strUsuario = WSHNetwork.UserName
strComputador = WSHNetwork.ComputerName
'strArquivo = strUsuario & "_" & strComputador & ".txt"
strArquivo = datahoje&"_Log_User.txt"Set objArq = CreateObject("Scripting.FileSystemObject")
Set objArquivo = objArq.OpenTextFile( "\\server\share$\" & strArquivo, 8, True)
'objArquivo.WriteLine( "Logon : " & Now )
objArquivo.WriteLine(Now & " " & " Usuário : " & strUsuario & " Computador :"& strComputador)
objArquivo.CloseReferências:
http://www.computerperformance.co.uk/vbscript/vbscript_file_opentextfile.htm
http://www.devguru.com/technologies/vbscript/quickref/filesystemobject_opentextfile.html
Fábio de Paula Junior- Editado Fábio JrModerator quinta-feira, 19 de maio de 2011 18:10 Adicionada referencia
- Sugerido como Resposta Fábio JrModerator sexta-feira, 20 de maio de 2011 12:34
- Marcado como Resposta Richard Juhasz quinta-feira, 26 de maio de 2011 19:35
Todas as Respostas
-
-
Fiz duas alterações.(em negrito)
Na primeira formatei a data de forma que sempre exiba dd_mm_yyyy.
Em seguida retirei aquela verificação do arquivo existente. Utilizando o método OpenTextFile com o terceiro parametro igual a TRUE (vc já estava utilizando) ele cria o arquivo caso ele não exista. O segundo parametro com valor 8 é o que diz que ele tem que "apendar".
Rodei o script 3 vezes e ele não apagou o arquivo e sim "apendou" os registro
----------- Exemplo do arquivo que gerei.
19/05/2011 14:59:33 Usuário : fpjunior Computador :XYZ
19/05/2011 14:59:39 Usuário : fpjunior Computador :XYZ
19/05/2011 14:59:40 Usuário : fpjunior Computador :XYZ-----------------
Dim objArq, strArquivo, objArquivo, datahoje
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WSHNetwork = CreateObject("WScript.Network")
datahoje = date
datahoje = day(datahoje) & "_" & month(datahoje) & "_" & year(datahoje)
strUsuario = WSHNetwork.UserName
strComputador = WSHNetwork.ComputerName
'strArquivo = strUsuario & "_" & strComputador & ".txt"
strArquivo = datahoje&"_Log_User.txt"Set objArq = CreateObject("Scripting.FileSystemObject")
Set objArquivo = objArq.OpenTextFile( "\\server\share$\" & strArquivo, 8, True)
'objArquivo.WriteLine( "Logon : " & Now )
objArquivo.WriteLine(Now & " " & " Usuário : " & strUsuario & " Computador :"& strComputador)
objArquivo.CloseReferências:
http://www.computerperformance.co.uk/vbscript/vbscript_file_opentextfile.htm
http://www.devguru.com/technologies/vbscript/quickref/filesystemobject_opentextfile.html
Fábio de Paula Junior- Editado Fábio JrModerator quinta-feira, 19 de maio de 2011 18:10 Adicionada referencia
- Sugerido como Resposta Fábio JrModerator sexta-feira, 20 de maio de 2011 12:34
- Marcado como Resposta Richard Juhasz quinta-feira, 26 de maio de 2011 19:35