A continuación es mi código VBS. Lo admito, soy muy nueva en esto, ya que yo era dar esto como un trabajo en el trabajo. Necesito crear un inicio de sesión/cierre de sesión el script que va a capturar cierta información y almacenarla en un archivo csv. Soy capaz de obtener la información y almacenarla en el archivo csv, pero cuando intento hacerlo de nuevo, yo quiero que crear otra fila y almacenar la información actualizada allí. Sigo recibiendo estos caracteres asiáticos. Lo que parece ser el problema.

Esto es lo que me sale en la segunda vez que hago clic en mi registro de secuencia de comandos:
਍潙牵琠硥⁴潧獥栠牥⹥਍

' ******************** Log Off Script **********************************
'Script to write Logoff Data Username, Computername to eventlog.

Dim objShell, WshNetwork, PCName, UserName, strMessage, strContents, logDate, logTime
Dim strQuery, objWMIService, colItems, strIP, rowCount

' Constants for type of event log entry
const EVENTLOG_AUDIT_SUCCESS = 8

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set WshNetwork = WScript.CreateObject("WScript.Network")

logDate = Date()
logTime = Time()
PCName = WshNetwork.ComputerName 
UserName = WshNetwork.UserName  
strMessage = "Logoff Event Data" & "PC Name: " & PCName & "Username: " & UserName & "Date: " & logDate & "Time: " & logTime

If (objFSO.FileExists("test.csv")) Then
WScript.Echo("File exists!")
dim filesys, filetxt 
Const ForReading = 1, ForWriting = 2, ForAppending = 8 
Set filesys = CreateObject("Scripting.FileSystemObject") 
Set filetxt = filesys.OpenTextFile("test.csv", ForAppending, True) 
filetxt.WriteLine(vbNewline & "Your text goes here.") 
filetxt.Close 

Else
rowCount = rowCount + 1
WScript.Echo("File does not exist! File Created!")
Set csvFile = objFSO.CreateTextFile("test.csv", _ 
ForWriting, True)

objShell.LogEvent EVENTLOG_AUDIT_SUCCESS, strMessage
csvFile.Write strMessage
csvFile.Writeline

End If  

WScript.Quit

1 Comentario

  1. 5

    Cuando en duda, leer la documentación. Va a crear el archivo en formato Unicode (3rd argumento de CreateTextFile conjunto para True):

    Set csvFile = objFSO.CreateTextFile("test.csv", _
    ForWriting, True)

    pero abrir una existente (Unicode) archivo en formato ASCII (4th argumento de OpenTextFile no se especifica):

    Set filetxt = filesys.OpenTextFile("test.csv", ForAppending, True) 

    Abrir un archivo en formato Unicode todo el tiempo, o nunca.

    También, no es necesario crear más de una FileSystemObject instancia. Sólo utilizar el creado al principio lo largo de toda la secuencia de comandos. También puede utilizar la misma variable para el texto objeto de flujo.

    Si quieres usar Unicode formato que usted necesita para cambiar las dos líneas anteriores a este:

    Set csvFile = objFSO.CreateTextFile("test.csv", False, True)
    ...
    Set csvFile = objFSO.OpenTextFile("test.csv", ForAppending, False, True)

    lo contrario a esto:

    Set csvFile = objFSO.CreateTextFile("test.csv")
    ...
    Set csvFile = objFSO.OpenTextFile("test.csv", ForAppending)
    • Muchas gracias! Funciona a la perfección!

Dejar respuesta

Please enter your comment!
Please enter your name here