none
Juntando e Filtrando Scripts RRS feed

  • Pergunta

  • Bom dia a todos.

    De inicio gostaria de agradecer a todos que me ajudaram a montar esses scripts abaixo.

    Agora eu preciso gerar relatorios baseados nesses scripts, preciso juntar os 3 scripts em um unico resultado, vou exemplificar abaixo separando os scripts que ja tenho.

    Então vamos lá

    Script 1 (mostra a versão e a data da ultima atualização do antivirus Mcafee)

    strLog = "log.txt"
    set FSo = CreateObject("Scripting.FileSystemObject")
    Set ArqLog = FSO.OpenTextFile(strLog, 8, True, 0)

    Set objShell = CreateObject("WScript.Shell")

    strChave = "HKEY_LOCAL_MACHINE\SOFTWARE\Mcafee\AvEngine\AVDatVersion"
    strValor = objShell.RegRead(strChave)

    strChave = "HKEY_LOCAL_MACHINE\SOFTWARE\Mcafee\AvEngine\AVDatDate"
    strValordate = objShell.RegRead(strChave)


    ArqLog.WriteLine "DAT VERSAO : " & strValor & VBCRLF
    ArqLog.WriteLine "DATA DA VERSAO : " & strValordate & VBCRLF


    Resultado do Script acima

    "DAT VERSAO : 5824
    DATA DA VERSAO : 2009/12/06"

    ____________________________________________________________________________________________________

    Script 2 (Verifica a data e o nome da última atualização do windows update, assim como a data do último Boot)

    StrComputer = "."

    '::::::::::::::::::::::::::::::::::
    'Data do ultimo BOOT
    '::::::::::::::::::::::::::::::::::

    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set objDtBoot = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem")

    For each objBoot in objDtBoot
    DtUltBoot = FormatDataTime(objBoot.LastBootUpTime)
    Next

    '::::::::::::::::::::::::::::::::::
    'Lista Ultima atualização
    '::::::::::::::::::::::::::::::::::

    Set objSession = CreateObject("Microsoft.Update.Session")
    Set objSearcher = objSession.CreateUpdateSearcher

    Set colHistory = objSearcher.QueryHistory(1, 1)

    For Each objEntry in colHistory
        UltAtu = objEntry.Title
     DtUltAtu = objEntry.Date
    Next
    ':::::::::::::::::::::::::::::::::::::
    'Cria Txt Com dados
    ':::::::::::::::::::::::::::::::::::::

    'LogFileName

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set WshShell = WScript.CreateObject("WScript.Shell")

    strCompName = WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")

    'Edita darta
    Data = Date()
    DtAt = Split(data,"/",-1)
    DataLog = DtAt(0)&DtAt(1)&DtAt(2)

    'caminho do arquivo txt
    TempFilename = "\\p2516\LOGdescript\"&DataLog&"_"&strCompName&".txt"

    'Inicia Gravação
    Set Arquivo = objFSO.CreateTextFile(Tempfilename)

    Arquivo.writeline "Terminal: " & strCompName
    Arquivo.writeline "Data do ultimo Boot: " & DtUltBoot
    Arquivo.writeline "Data ultima atualização: "& DtUltAtu
    Arquivo.writeline "Pacote instalado: "&UltAtu

    'Fecha arquivo
    Arquivo.close()

    Function FormatDataTime(VarDateCheck)
    LeftStr = Left(VarDateCheck, 14)
    TSec = Mid(LeftStr, 13, 2)
    THora = Mid(LeftStr, 9, 2)
    TMin = Mid(LeftStr, 11, 2)
    DYear = Left(LeftStr, 4)
    DMonth = Mid(LeftStr, 5, 2)
    DDay = Mid(LeftStr, 7, 2)

    FormatDataTime = DDay & "/" & DMonth & "/" & DYear &" - "&THora&":"&Tmin&":"&TSec
    End Function

    Resultado do Script acima

    "Terminal: P2516
    Data do ultimo Boot: 04/12/2009 - 10:24:52
    Data ultima atualização: 12/11/2009 10:19:22
    Pacote instalado: Security Update for Microsoft Office Word 2003 (KB973443)"

    _________________________________________________________________________________________________________

    Script 3 (Mostra espaço livre no disco)

    Function ConvertSize(Size)
    Do While InStr(Size,",") 'Remove commas from size
        CommaLocate = InStr(Size,",")
        Size = Mid(Size,1,CommaLocate - 1) & _
            Mid(Size,CommaLocate + 1,Len(Size) - CommaLocate)
    Loop
    Suffix = " Bytes"
    If Size >= 1024 Then suffix = " KB"
    If Size >= 1048576 Then suffix = " MB"
    If Size >= 1073741824 Then suffix = " GB"
    If Size >= 1099511627776 Then suffix = " TB"
    Select Case Suffix
        Case " KB" Size = Round(Size / 1024, 1)
        Case " MB" Size = Round(Size / 1048576, 1)
        Case " GB" Size = Round(Size / 1073741824, 1)
        Case " TB" Size = Round(Size / 1099511627776, 1)
    End Select
    ConvertSize = Size & Suffix
    End Function
    ArrComputer = Array("Terminal 1 ","Terminal 2 ","Terminal 3 ","Terminal 4 ","Terminal 5 ","6","Terminal 7 ","Terminal 8 ","Terminal 9 ","Terminal 10 ")
    Set FSO = CreateObject("Scripting.FileSystemObject")
    If FSO.FileExists("C:\FreeSpace.txt") Then
    FSO.DeleteFile("C:\FreeSpace.txt")
    FSO.CreateTextFile("C:\FreeSpace.txt")
    Else
    FSO.CreateTextFile("C:\Documents and Settings\mcs\Desktop\vbs and bats\FreeSpace.txt")
    End If
    For Each strComputer In ArrComputer
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE DriveType=3",,48)
    For Each objItem in colItems
    strDiskSize = objItem.Size
    strDiskFree = objItem.FreeSpace
    strDiskUsed = (strDiskSize - strDiskFree)
    strDiskPercentageFree = FormatNumber(((objItem.FreeSpace/objItem.Size)*100),2)
    Data = "Servidor: " & strComputer & " | Disco lógico: " & objItem.Caption & "| Espaço livre: " & ConvertSize(strDiskFree) & " | Espaço Utilizado: " & ConvertSize(strDiskUsed) & " | Porcentagem de espaço livre: " & strDiskPercentageFree & " %"
    Set OutFile =  FSO.OpenTextFile("C:\FreeSpace.txt", 8)
    OutFile.WriteLine(Data)
    OutFile.Close
    Next
    Next
    Set objWMIService = Nothing
    Set colItems = Nothing
    Set FSO = Nothing
    Set OutFile = Nothing

    Resultado do script acima

    "Servidor: Terminal 1 | Disco lógico: C:| Espaço livre: 12.6 GB | Espaço Utilizado: 12.4 GB | Porcentagem de espaço livre: 50.58 %
    Servidor:
    Terminal 1 | Disco lógico: E:| Espaço livre: 298.9 GB | Espaço Utilizado: 628 GB | Porcentagem de espaço livre: 32.24 %

    Servidor:
    Terminal 2 | Disco lógico: C:| Espaço livre: 880.6 MB | Espaço Utilizado: 8.9 GB | Porcentagem de espaço livre: 8.80 %
    Servidor:
    Terminal 2 | Disco lógico: D:| Espaço livre: 65.7 GB | Espaço Utilizado: 26.3 GB | Porcentagem de espaço livre: 71.45 %

    Servidor:
    Terminal 3 | Disco lógico: C:| Espaço livre: 25.9 GB | Espaço Utilizado: 13.1 GB | Porcentagem de espaço livre: 66.39 %
    Servidor:
    Terminal 3 | Disco lógico: E:| Espaço livre: 590.1 GB | Espaço Utilizado: 69.4 GB | Porcentagem de espaço livre: 89.48 %

    Servidor:
    Terminal 4 | Disco lógico: C:| Espaço livre: 949.9 MB | Espaço Utilizado: 8.8 GB | Porcentagem de espaço livre: 9.50 %
    Servidor:
    Terminal 4 | Disco lógico: D:| Espaço livre: 19.2 GB | Espaço Utilizado: 106.7 GB | Porcentagem de espaço livre: 15.28 %

    Servidor:
    Terminal 5 | Disco lógico: M:| Espaço livre: 52.9 GB | Espaço Utilizado: 15.4 GB | Porcentagem de espaço livre: 77.39 %

    Servidor:
    Terminal 6 | Disco lógico: C:| Espaço livre: 864.2 MB | Espaço Utilizado: 8.9 GB | Porcentagem de espaço livre: 8.64 %
    Servidor:
    Terminal 6 | Disco lógico: D:| Espaço livre: 43.2 GB | Espaço Utilizado: 116.6 GB | Porcentagem de espaço livre: 27.06 %

    Servidor:
    Terminal 7 | Disco lógico: C:| Espaço livre: 14.9 GB | Espaço Utilizado: 12.3 GB | Porcentagem de espaço livre: 54.79 %
    Servidor:
    Terminal 7 | Disco lógico: D:| Espaço livre: 37 GB | Espaço Utilizado: 3.6 GB | Porcentagem de espaço livre: 91.15 %

    Servidor:
    Terminal 8 | Disco lógico: C:| Espaço livre: 438.5 MB | Espaço Utilizado: 7.5 GB | Porcentagem de espaço livre: 5.38 %
    Servidor:
    Terminal 8 | Disco lógico: D:| Espaço livre: 870.4 MB | Espaço Utilizado: 59 GB | Porcentagem de espaço livre: 1.42 %

    Servidor:
    Terminal 9 | Disco lógico: C:| Espaço livre: 11.1 GB | Espaço Utilizado: 8.4 GB | Porcentagem de espaço livre: 56.99 %
    Servidor:
    Terminal 9 | Disco lógico: D:| Espaço livre: 43.4 GB | Espaço Utilizado: 4.9 GB | Porcentagem de espaço livre: 89.91 %

    Servidor:
    Terminal 10 | Disco lógico: C:| Espaço livre: 19.2 GB | Espaço Utilizado: 10.1 GB | Porcentagem de espaço livre: 65.40 %
    Servidor:
    Terminal 10 | Disco lógico: D:| Espaço livre: 647 GB | Espaço Utilizado: 22.3 GB | Porcentagem de espaço livre: 96.67 %

    _____________________________________________________________________________________________________________






    Agora a questão principal :



    Eu preciso formar um único script que gere um unico arquivo .txt (ou Excel) contendo os resultados dos scripts (que estão em negrito) abaixo separado por (nome da maquina) e (Data corrente) conforme abaixo:

    Um unico arquivo .TXT contendo os seguintes dados: (Se puder ser no Excel MELHOR AINDA !)
    ________________________________________________________________________________________________________________________
    "Terminal: P2516

    Data do ultimo Boot: 04/12/2009 - 10:24:52
    Data ultima atualização: 12/11/2009 10:19:22
    Pacote instalado: Security Update for Microsoft Office Word 2003 (KB973443)"
    ----------------------------------------------------------------------------------------------------------------------
    DAT VERSAO : 5824
    DATA DA VERSAO : 2009/12/06
    -----------------------------------------------------------------------------------------------------------------------
    Disco lógico: C:| Espaço livre: 12.6 GB | Espaço Utilizado: 12.4 GB | Porcentagem de espaço livre: 50.58 %
    Disco lógico: E:| Espaço livre: 298.9 GB | Espaço Utilizado: 628 GB | Porcentagem de espaço livre: 32.24 %


    _______________________________________________________________________________________________________________________
    "Terminal: P5040

    Data do ultimo Boot: 06/11/2009 - 10:24:52
    Data ultima atualização: 11/10/2009 10:19:22
    Pacote instalado: Security Update for Microsoft Office Word 2003 (KB973443)"
    ------------------------------------------------------------------------------------------------------------------------
    DAT VERSAO : 5889
    DATA DA VERSAO : 2009/12/06
    -----------------------------------------------------------------------------------------------------------------------
    Disco lógico: C:| Espaço livre: 11.6 GB | Espaço Utilizado: 12.4 GB | Porcentagem de espaço livre: 50.58 %
    Disco lógico: E:| Espaço livre: 238.9 GB | Espaço Utilizado: 628 GB | Porcentagem de espaço livre: 32.24 %

    ________________________________________________________________________________________________________________________
    "Terminal: P550

    Data do ultimo Boot: 06/11/2009 - 10:24:52
    Data ultima atualização: 11/10/2009 10:19:22
    Pacote instalado: Security Update for Microsoft Office Word 2003 (KB973443)"
    ------------------------------------------------------------------------------------------------------------------------
    VERSAO : 5889
    DATA DA VERSAO : 2009/12/06
    -----------------------------------------------------------------------------------------------------------------------
    Disco lógico: C:| Espaço livre: 11.6 GB | Espaço Utilizado: 12.4 GB | Porcentagem de espaço livre: 50.58 %
    Disco lógico: E:| Espaço livre: 238.9 GB | Espaço Utilizado: 628 GB | Porcentagem de espaço livre: 32.24 %
    ________________________________________________________________________________________________________________________

    .
    .
    .
    .
    .

    e ASSIM POR DIANTE EM TODAS AS MAQUINAS DO DOMINIO

    Alguem pode me dar uma força ?

    Obrigado





     
    segunda-feira, 7 de dezembro de 2009 14:05

Todas as Respostas

  • Bom dia a todos.

    De inicio gostaria de agradecer a todos que me ajudaram a montar esses scripts abaixo.

    Agora eu preciso gerar relatorios baseados nesses scripts, preciso juntar os 3 scripts em um unico resultado, vou exemplificar abaixo separando os scripts que ja tenho.

    Então vamos lá

    Script 1 (mostra a versão e a data da ultima atualização do antivirus Mcafee)

    strLog = "log.txt"
    set FSo = CreateObject("Scripting.FileSystemObject")
    Set ArqLog = FSO.OpenTextFile(strLog, 8, True, 0)

    Set objShell = CreateObject("WScript.Shell")

    strChave = "HKEY_LOCAL_MACHINE\SOFTWARE\Mcafee\AvEngine\AVDatVersion"
    strValor = objShell.RegRead(strChave)

    strChave = "HKEY_LOCAL_MACHINE\SOFTWARE\Mcafee\AvEngine\AVDatDate"
    strValordate = objShell.RegRead(strChave)


    ArqLog.WriteLine "DAT VERSAO : " & strValor & VBCRLF
    ArqLog.WriteLine "DATA DA VERSAO : " & strValordate & VBCRLF


    Resultado do Script acima

    "DAT VERSAO : 5824
    DATA DA VERSAO : 2009/12/06"

    ____________________________________________________________________________________________________

    Script 2 (Verifica a data e o nome da última atualização do windows update, assim como a data do último Boot)

    StrComputer = "."

    '::::::::::::::::::::::::::::::::::
    'Data do ultimo BOOT
    '::::::::::::::::::::::::::::::::::

    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set objDtBoot = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem")

    For each objBoot in objDtBoot
    DtUltBoot = FormatDataTime(objBoot.LastBootUpTime)
    Next

    '::::::::::::::::::::::::::::::::::
    'Lista Ultima atualização
    '::::::::::::::::::::::::::::::::::

    Set objSession = CreateObject("Microsoft.Update.Session")
    Set objSearcher = objSession.CreateUpdateSearcher

    Set colHistory = objSearcher.QueryHistory(1, 1)

    For Each objEntry in colHistory
        UltAtu = objEntry.Title
     DtUltAtu = objEntry.Date
    Next
    ':::::::::::::::::::::::::::::::::::::
    'Cria Txt Com dados
    ':::::::::::::::::::::::::::::::::::::

    'LogFileName

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set WshShell = WScript.CreateObject("WScript.Shell")

    strCompName = WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")

    'Edita darta
    Data = Date()
    DtAt = Split(data,"/",-1)
    DataLog = DtAt(0)&DtAt(1)&DtAt(2)

    'caminho do arquivo txt
    TempFilename = "\\p2516\LOGdescript\"&DataLog&"_"&strCompName&".txt"

    'Inicia Gravação
    Set Arquivo = objFSO.CreateTextFile(Tempfilename)

    Arquivo.writeline "Terminal: " & strCompName
    Arquivo.writeline "Data do ultimo Boot: " & DtUltBoot
    Arquivo.writeline "Data ultima atualização: "& DtUltAtu
    Arquivo.writeline "Pacote instalado: "&UltAtu

    'Fecha arquivo
    Arquivo.close()

    Function FormatDataTime(VarDateCheck)
    LeftStr = Left(VarDateCheck, 14)
    TSec = Mid(LeftStr, 13, 2)
    THora = Mid(LeftStr, 9, 2)
    TMin = Mid(LeftStr, 11, 2)
    DYear = Left(LeftStr, 4)
    DMonth = Mid(LeftStr, 5, 2)
    DDay = Mid(LeftStr, 7, 2)

    FormatDataTime = DDay & "/" & DMonth & "/" & DYear &" - "&THora&":"&Tmin&":"&TSec
    End Function

    Resultado do Script acima

    "Terminal: P2516
    Data do ultimo Boot: 04/12/2009 - 10:24:52
    Data ultima atualização: 12/11/2009 10:19:22
    Pacote instalado: Security Update for Microsoft Office Word 2003 (KB973443)"

    _________________________________________________________________________________________________________

    Script 3 (Mostra espaço livre no disco)

    Function ConvertSize(Size)
    Do While InStr(Size,",") 'Remove commas from size
        CommaLocate = InStr(Size,",")
        Size = Mid(Size,1,CommaLocate - 1) & _
            Mid(Size,CommaLocate + 1,Len(Size) - CommaLocate)
    Loop
    Suffix = " Bytes"
    If Size >= 1024 Then suffix = " KB"
    If Size >= 1048576 Then suffix = " MB"
    If Size >= 1073741824 Then suffix = " GB"
    If Size >= 1099511627776 Then suffix = " TB"
    Select Case Suffix
        Case " KB" Size = Round(Size / 1024, 1)
        Case " MB" Size = Round(Size / 1048576, 1)
        Case " GB" Size = Round(Size / 1073741824, 1)
        Case " TB" Size = Round(Size / 1099511627776, 1)
    End Select
    ConvertSize = Size & Suffix
    End Function
    ArrComputer = Array("Terminal 1 ","Terminal 2 ","Terminal 3 ","Terminal 4 ","Terminal 5 ","6","Terminal 7 ","Terminal 8 ","Terminal 9 ","Terminal 10 ")
    Set FSO = CreateObject("Scripting.FileSystemObject")
    If FSO.FileExists("C:\FreeSpace.txt") Then
    FSO.DeleteFile("C:\FreeSpace.txt")
    FSO.CreateTextFile("C:\FreeSpace.txt")
    Else
    FSO.CreateTextFile("C:\Documents and Settings\mcs\Desktop\vbs and bats\FreeSpace.txt")
    End If
    For Each strComputer In ArrComputer
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE DriveType=3",,48)
    For Each objItem in colItems
    strDiskSize = objItem.Size
    strDiskFree = objItem.FreeSpace
    strDiskUsed = (strDiskSize - strDiskFree)
    strDiskPercentageFree = FormatNumber(((objItem.FreeSpace/objItem.Size)*100),2)
    Data = "Servidor: " & strComputer & " | Disco lógico: " & objItem.Caption & "| Espaço livre: " & ConvertSize(strDiskFree) & " | Espaço Utilizado: " & ConvertSize(strDiskUsed) & " | Porcentagem de espaço livre: " & strDiskPercentageFree & " %"
    Set OutFile =  FSO.OpenTextFile("C:\FreeSpace.txt", 8)
    OutFile.WriteLine(Data)
    OutFile.Close
    Next
    Next
    Set objWMIService = Nothing
    Set colItems = Nothing
    Set FSO = Nothing
    Set OutFile = Nothing

    Resultado do script acima

    "Servidor: Terminal 1 | Disco lógico: C:| Espaço livre: 12.6 GB | Espaço Utilizado: 12.4 GB | Porcentagem de espaço livre: 50.58 %
    Servidor:
    Terminal 1 | Disco lógico: E:| Espaço livre: 298.9 GB | Espaço Utilizado: 628 GB | Porcentagem de espaço livre: 32.24 %

    Servidor:
    Terminal 2 | Disco lógico: C:| Espaço livre: 880.6 MB | Espaço Utilizado: 8.9 GB | Porcentagem de espaço livre: 8.80 %
    Servidor:
    Terminal 2 | Disco lógico: D:| Espaço livre: 65.7 GB | Espaço Utilizado: 26.3 GB | Porcentagem de espaço livre: 71.45 %

    Servidor:
    Terminal 3 | Disco lógico: C:| Espaço livre: 25.9 GB | Espaço Utilizado: 13.1 GB | Porcentagem de espaço livre: 66.39 %
    Servidor:
    Terminal 3 | Disco lógico: E:| Espaço livre: 590.1 GB | Espaço Utilizado: 69.4 GB | Porcentagem de espaço livre: 89.48 %

    Servidor:
    Terminal 4 | Disco lógico: C:| Espaço livre: 949.9 MB | Espaço Utilizado: 8.8 GB | Porcentagem de espaço livre: 9.50 %
    Servidor:
    Terminal 4 | Disco lógico: D:| Espaço livre: 19.2 GB | Espaço Utilizado: 106.7 GB | Porcentagem de espaço livre: 15.28 %

    Servidor:
    Terminal 5 | Disco lógico: M:| Espaço livre: 52.9 GB | Espaço Utilizado: 15.4 GB | Porcentagem de espaço livre: 77.39 %

    Servidor:
    Terminal 6 | Disco lógico: C:| Espaço livre: 864.2 MB | Espaço Utilizado: 8.9 GB | Porcentagem de espaço livre: 8.64 %
    Servidor:
    Terminal 6 | Disco lógico: D:| Espaço livre: 43.2 GB | Espaço Utilizado: 116.6 GB | Porcentagem de espaço livre: 27.06 %

    Servidor:
    Terminal 7 | Disco lógico: C:| Espaço livre: 14.9 GB | Espaço Utilizado: 12.3 GB | Porcentagem de espaço livre: 54.79 %
    Servidor:
    Terminal 7 | Disco lógico: D:| Espaço livre: 37 GB | Espaço Utilizado: 3.6 GB | Porcentagem de espaço livre: 91.15 %

    Servidor:
    Terminal 8 | Disco lógico: C:| Espaço livre: 438.5 MB | Espaço Utilizado: 7.5 GB | Porcentagem de espaço livre: 5.38 %
    Servidor:
    Terminal 8 | Disco lógico: D:| Espaço livre: 870.4 MB | Espaço Utilizado: 59 GB | Porcentagem de espaço livre: 1.42 %

    Servidor:
    Terminal 9 | Disco lógico: C:| Espaço livre: 11.1 GB | Espaço Utilizado: 8.4 GB | Porcentagem de espaço livre: 56.99 %
    Servidor:
    Terminal 9 | Disco lógico: D:| Espaço livre: 43.4 GB | Espaço Utilizado: 4.9 GB | Porcentagem de espaço livre: 89.91 %

    Servidor:
    Terminal 10 | Disco lógico: C:| Espaço livre: 19.2 GB | Espaço Utilizado: 10.1 GB | Porcentagem de espaço livre: 65.40 %
    Servidor:
    Terminal 10 | Disco lógico: D:| Espaço livre: 647 GB | Espaço Utilizado: 22.3 GB | Porcentagem de espaço livre: 96.67 %

    _____________________________________________________________________________________________________________






    Agora a questão principal :



    Eu preciso formar um único script que gere um unico arquivo .txt (ou Excel) contendo os resultados dos scripts (que estão em negrito) abaixo separado por (nome da maquina) e (Data corrente) conforme abaixo:

    Um unico arquivo .TXT contendo os seguintes dados: (Se puder ser no Excel MELHOR AINDA !)
    ________________________________________________________________________________________________________________________
    "Terminal: P2516

    Data do ultimo Boot: 04/12/2009 - 10:24:52
    Data ultima atualização: 12/11/2009 10:19:22
    Pacote instalado: Security Update for Microsoft Office Word 2003 (KB973443)"
    ----------------------------------------------------------------------------------------------------------------------
    DAT VERSAO : 5824
    DATA DA VERSAO : 2009/12/06
    -----------------------------------------------------------------------------------------------------------------------
    Disco lógico: C:| Espaço livre: 12.6 GB | Espaço Utilizado: 12.4 GB | Porcentagem de espaço livre: 50.58 %
    Disco lógico: E:| Espaço livre: 298.9 GB | Espaço Utilizado: 628 GB | Porcentagem de espaço livre: 32.24 %


    _______________________________________________________________________________________________________________________
    "Terminal: P5040

    Data do ultimo Boot: 06/11/2009 - 10:24:52
    Data ultima atualização: 11/10/2009 10:19:22
    Pacote instalado: Security Update for Microsoft Office Word 2003 (KB973443)"
    ------------------------------------------------------------------------------------------------------------------------
    DAT VERSAO : 5889
    DATA DA VERSAO : 2009/12/06
    -----------------------------------------------------------------------------------------------------------------------
    Disco lógico: C:| Espaço livre: 11.6 GB | Espaço Utilizado: 12.4 GB | Porcentagem de espaço livre: 50.58 %
    Disco lógico: E:| Espaço livre: 238.9 GB | Espaço Utilizado: 628 GB | Porcentagem de espaço livre: 32.24 %

    ________________________________________________________________________________________________________________________
    "Terminal: P550

    Data do ultimo Boot: 06/11/2009 - 10:24:52
    Data ultima atualização: 11/10/2009 10:19:22
    Pacote instalado: Security Update for Microsoft Office Word 2003 (KB973443)"
    ------------------------------------------------------------------------------------------------------------------------
    VERSAO : 5889
    DATA DA VERSAO : 2009/12/06
    -----------------------------------------------------------------------------------------------------------------------
    Disco lógico: C:| Espaço livre: 11.6 GB | Espaço Utilizado: 12.4 GB | Porcentagem de espaço livre: 50.58 %
    Disco lógico: E:| Espaço livre: 238.9 GB | Espaço Utilizado: 628 GB | Porcentagem de espaço livre: 32.24 %
    ________________________________________________________________________________________________________________________

    .
    .
    .
    .
    .

    e ASSIM POR DIANTE EM TODAS AS MAQUINAS DO DOMINIO

    Alguem pode me dar uma força ?

    Obrigado





     


    Paskaw, boa tarde.

    Podemos sim...a adaptação será um pouco grande.....
    Forma de execução...

    Poderemos executar através do PSEXEC....

    A famosa linha: psexec @Computadores.txt -u DOMINIO\Usuário -p "Senha" -c cscript \\CaminhoVBS

    Quanto a unificação dos scripts deveremos criar como se fossem rodar localmente.
    Lembrando que colocaremos 1 em um txt. Dps tentaremos colocar em um excel (Sim tem como) ou em um BD ACCESS.

    Me diverti com esses dados.


    'Inicio do script
    'Obtem dados do McAfee + UltBoot/Atualização + HD


    StrComputer = "."

    On error resume Next

    data = split(Date(),"/",-1)
    DataF = data(0)&data(1)&data(2)

    Set objShell = CreateObject("WScript.Shell")
    Set WshShell = WScript.CreateObject("WScript.Shell")

    strCompName = WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")

    strLog = "\\Seuservidor\pasta\"&StrCompName&"-"&dataF&".txt"

    set FSo = CreateObject("Scripting.FileSystemObject")
    Set ArqLog = FSO.OpenTextFile(strLog, 8, True, 0)

     

    'Dados!
    ArqLog.WriteLine ""
    ArqLog.WriteLine "Terminal: "&strCompName


    '::::::::::::::::::::::::::::::::::
    'Data do ultimo BOOT
    '::::::::::::::::::::::::::::::::::

    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set objDtBoot = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem")

    For each objBoot in objDtBoot
    DtUltBoot = FormatDataTime(objBoot.LastBootUpTime)
    Next

    '::::::::::::::::::::::::::::::::::
    'Lista Ultima atualização
    '::::::::::::::::::::::::::::::::::

    Set objSession = CreateObject("Microsoft.Update.Session")
    Set objSearcher = objSession.CreateUpdateSearcher

    Set colHistory = objSearcher.QueryHistory(1, 1)

    For Each objEntry in colHistory
        UltAtu = objEntry.Title
     DtUltAtu = objEntry.Date
    Next
    ':::::::::::::::::::::::::::::::::::::
    'Cria Txt Com dados
    ':::::::::::::::::::::::::::::::::::::

    'LogFileName

    Set objFSO = CreateObject("Scripting.FileSystemObject")


    'Edita darta
    Data = Date()
    DtAt = Split(data,"/",-1)
    DataLog = DtAt(0)&DtAt(1)&DtAt(2)


    ArqLog.writeline "Data do ultimo Boot: " & DtUltBoot
    ArqLog.writeline "Data ultima atualização: "& DtUltAtu
    ArqLog.writeline "Pacote instalado: "&UltAtu

    ArqLog.Writeline "--------------------------------------------------------------------------"

    '::::::::::::::::::::::::::::::::::
    'Data / DAT do McAfee
    '::::::::::::::::::::::::::::::::::

    strChave = "HKEY_LOCAL_MACHINE\SOFTWARE\Mcafee\AvEngine\AVDatVersion"
    strValor = objShell.RegRead(strChave)

    strChave = "HKEY_LOCAL_MACHINE\SOFTWARE\Mcafee\AvEngine\AVDatDate"
    strValordate = objShell.RegRead(strChave)


    ArqLog.WriteLine "DAT VERSAO : " & strValor
    ArqLog.WriteLine "DATA DA VERSAO : " & strValordate

    ArqLog.Writeline "--------------------------------------------------------------------------"

     

    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE DriveType=3",,48)
    For Each objItem in colItems
    strDiskSize = objItem.Size
    strDiskFree = objItem.FreeSpace
    strDiskUsed = (strDiskSize - strDiskFree)
    strDiskPercentageFree = FormatNumber(((objItem.FreeSpace/objItem.Size)*100),2)

    STRDADOS = "Servidor: " & strCompName & " | Disco lógico: " & objItem.Caption & "| Espaço livre: " & ConvertSize(strDiskFree) & " | Espaço Utilizado: " & ConvertSize(strDiskUsed) & " | Porcentagem de espaço livre: " & strDiskPercentageFree & " %"
    ArqLog.WriteLine(STRDADOS)
    Next

    ArqLog.Close()


    '::::::::::::::::::::FUNÇÕES

    Function FormatDataTime(VarDateCheck)
    LeftStr = Left(VarDateCheck, 14)
    TSec = Mid(LeftStr, 13, 2)
    THora = Mid(LeftStr, 9, 2)
    TMin = Mid(LeftStr, 11, 2)
    DYear = Left(LeftStr, 4)
    DMonth = Mid(LeftStr, 5, 2)
    DDay = Mid(LeftStr, 7, 2)

    FormatDataTime = DDay & "/" & DMonth & "/" & DYear &" - "&THora&":"&Tmin&":"&TSec
    End Function

     

    Function ConvertSize(Size)
    Do While InStr(Size,",") 'Remove commas from size
        CommaLocate = InStr(Size,",")
        Size = Mid(Size,1,CommaLocate - 1) & _
            Mid(Size,CommaLocate + 1,Len(Size) - CommaLocate)
    Loop
    Suffix = " Bytes"
    If Size >= 1024 Then suffix = " KB"
    If Size >= 1048576 Then suffix = " MB"
    If Size >= 1073741824 Then suffix = " GB"
    If Size >= 1099511627776 Then suffix = " TB"
    Select Case Suffix
        Case " KB" Size = Round(Size / 1024, 1)
        Case " MB" Size = Round(Size / 1048576, 1)
        Case " GB" Size = Round(Size / 1073741824, 1)
        Case " TB" Size = Round(Size / 1099511627776, 1)
    End Select
    ConvertSize = Size & Suffix
    End Function


    Veja se atende...lembrando que pode melhorar e muito esse script.

    Eu prefiro trabalhar com BD.
    Poste os resultados!

    []s,




    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    segunda-feira, 7 de dezembro de 2009 17:46
  • Não funcionou e nem deu erro, ele não fez nada.

    Eu mudei a linha (strLog = "\\Seuservidor\pasta\"&StrCompName&"-"&dataF&".txt ") para (strLog = "\\p2516\logscript\"&StrCompName&"-"&dataF&".txt")

    Essa pasta está compartilhada com as permições necessarias

    Se puder, adicione comentarios ao script para eu tentar entender o que ta sendo feito.

    Obrigado !


    • Editado Paskaw segunda-feira, 7 de dezembro de 2009 18:57 Mais info
    segunda-feira, 7 de dezembro de 2009 18:55
  • Rode localmente......quando for direcionar para o servidor, retire a linha "On error resume next", por esse motivo ele da erro e não reporta.

    Tente...


    'Inicio do script
    'Obtem dados do McAfee + UltBoot/Atualização + HD


    StrComputer = "."

    On error resume Next

    data = split(Date(),"/",-1)
    DataF = data(0)&data(1)&data(2)

    strLog = "./log-"&dataF&".txt"

    set FSo = CreateObject("Scripting.FileSystemObject")
    Set ArqLog = FSO.OpenTextFile(strLog, 8, True, 0)

    Set objShell = CreateObject("WScript.Shell")
    Set WshShell = WScript.CreateObject("WScript.Shell")

    strCompName = WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")

    'Dados!
    ArqLog.WriteLine ""
    ArqLog.WriteLine "Terminal: "&strCompName


    '::::::::::::::::::::::::::::::::::
    'Data do ultimo BOOT
    '::::::::::::::::::::::::::::::::::

    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set objDtBoot = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem")

    For each objBoot in objDtBoot
    DtUltBoot = FormatDataTime(objBoot.LastBootUpTime)
    Next

    '::::::::::::::::::::::::::::::::::
    'Lista Ultima atualização
    '::::::::::::::::::::::::::::::::::

    Set objSession = CreateObject("Microsoft.Update.Session")
    Set objSearcher = objSession.CreateUpdateSearcher

    Set colHistory = objSearcher.QueryHistory(1, 1)

    For Each objEntry in colHistory
        UltAtu = objEntry.Title
     DtUltAtu = objEntry.Date
    Next
    ':::::::::::::::::::::::::::::::::::::
    'Cria Txt Com dados
    ':::::::::::::::::::::::::::::::::::::

    'LogFileName

    Set objFSO = CreateObject("Scripting.FileSystemObject")


    'Edita darta
    Data = Date()
    DtAt = Split(data,"/",-1)
    DataLog = DtAt(0)&DtAt(1)&DtAt(2)


    ArqLog.writeline "Data do ultimo Boot: " & DtUltBoot
    ArqLog.writeline "Data ultima atualização: "& DtUltAtu
    ArqLog.writeline "Pacote instalado: "&UltAtu

    ArqLog.Writeline "--------------------------------------------------------------------------"

    '::::::::::::::::::::::::::::::::::
    'Data / DAT do McAfee
    '::::::::::::::::::::::::::::::::::

    strChave = "HKEY_LOCAL_MACHINE\SOFTWARE\Mcafee\AvEngine\AVDatVersion"
    strValor = objShell.RegRead(strChave)

    strChave = "HKEY_LOCAL_MACHINE\SOFTWARE\Mcafee\AvEngine\AVDatDate"
    strValordate = objShell.RegRead(strChave)


    ArqLog.WriteLine "DAT VERSAO : " & strValor & VBCRLF
    ArqLog.WriteLine "DATA DA VERSAO : " & strValordate & VBCRLF

    ArqLog.Writeline "--------------------------------------------------------------------------"

     

    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE DriveType=3",,48)
    For Each objItem in colItems
    strDiskSize = objItem.Size
    strDiskFree = objItem.FreeSpace
    strDiskUsed = (strDiskSize - strDiskFree)
    strDiskPercentageFree = FormatNumber(((objItem.FreeSpace/objItem.Size)*100),2)

    STRDADOS = "Servidor: " & strCompName & " | Disco lógico: " & objItem.Caption & "| Espaço livre: " & ConvertSize(strDiskFree) & " | Espaço Utilizado: " & ConvertSize(strDiskUsed) & " | Porcentagem de espaço livre: " & strDiskPercentageFree & " %"
    ArqLog.WriteLine(STRDADOS)
    Next

    ArqLog.Close()


    '::::::::::::::::::::FUNÇÕES

    Function FormatDataTime(VarDateCheck)
    LeftStr = Left(VarDateCheck, 14)
    TSec = Mid(LeftStr, 13, 2)
    THora = Mid(LeftStr, 9, 2)
    TMin = Mid(LeftStr, 11, 2)
    DYear = Left(LeftStr, 4)
    DMonth = Mid(LeftStr, 5, 2)
    DDay = Mid(LeftStr, 7, 2)

    FormatDataTime = DDay & "/" & DMonth & "/" & DYear &" - "&THora&":"&Tmin&":"&TSec
    End Function

     

    Function ConvertSize(Size)
    Do While InStr(Size,",") 'Remove commas from size
        CommaLocate = InStr(Size,",")
        Size = Mid(Size,1,CommaLocate - 1) & _
            Mid(Size,CommaLocate + 1,Len(Size) - CommaLocate)
    Loop
    Suffix = " Bytes"
    If Size >= 1024 Then suffix = " KB"
    If Size >= 1048576 Then suffix = " MB"
    If Size >= 1073741824 Then suffix = " GB"
    If Size >= 1099511627776 Then suffix = " TB"
    Select Case Suffix
        Case " KB" Size = Round(Size / 1024, 1)
        Case " MB" Size = Round(Size / 1048576, 1)
        Case " GB" Size = Round(Size / 1073741824, 1)
        Case " TB" Size = Round(Size / 1099511627776, 1)
    End Select
    ConvertSize = Size & Suffix
    End Function


    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    • Editado Marcellus Bockorny terça-feira, 8 de dezembro de 2009 00:02 Adiconado comentário
    terça-feira, 8 de dezembro de 2009 00:02
  • Funcionou redondinho !

    Segue o resultado Local

    " Terminal: P2516
    Data do ultimo Boot: 04/12/2009 - 10:24:52
    Data ultima atualização: 12/11/2009 10:19:22
    Pacote instalado: Security Update for Microsoft Office Word 2003 (KB973443)
    --------------------------------------------------------------------------
    DAT VERSAO : 5825

    DATA DA VERSAO : 2009/12/07

    --------------------------------------------------------------------------
    Servidor: P2516 | Disco lógico: C:| Espaço livre: 4,5 GB | Espaço Utilizado: 70 GB | Porcentagem de espaço livre: 6,10 %
    Servidor: P2516 | Disco lógico: E:| Espaço livre: 16,7 GB | Espaço Utilizado: 262,8 GB | Porcentagem de espaço livre: 5,97 %  "


    Tetei rodar remotamente pra outro cliente usando o comando abaixo mais não tive sucesso. Ele executou o comando, disse que nao deu erro mais não mostrou o resultado (eu executei sem a linha "On error resume Next").

    "psexec @clientes.txt -u DOMINIO\USUARIO -p SENHA -c cscript \\p2516\logdescript\geral.vbs"

    Agora como podemos melhora-lo ?

    1- Pegar essa informação de todos os clientes do Dominio. (acho que pra isso é só mudar na hora de executar o PSEXEC)
    2 - Transformar pra Excel porque BD aqui é meio burocratico pra usar.
    3 - Mudar o formato da data no resultado (DATA DA VERSAO : 2009/12/07)
    4 - Adicionar a data em que o script foi executado.

    Obs: To procurando algum material para interagir um pouco melhor com vbscipt, voce tem alguma coisa ae que possa me passar por email ?
    Desde já agradeço !
    terça-feira, 8 de dezembro de 2009 11:41
  • Funcionou redondinho !

    Segue o resultado Local

    " Terminal: P2516
    Data do ultimo Boot: 04/12/2009 - 10:24:52
    Data ultima atualização: 12/11/2009 10:19:22
    Pacote instalado: Security Update for Microsoft Office Word 2003 (KB973443)
    --------------------------------------------------------------------------
    DAT VERSAO : 5825

    DATA DA VERSAO : 2009/12/07

    --------------------------------------------------------------------------
    Servidor: P2516 | Disco lógico: C:| Espaço livre: 4,5 GB | Espaço Utilizado: 70 GB | Porcentagem de espaço livre: 6,10 %
    Servidor: P2516 | Disco lógico: E:| Espaço livre: 16,7 GB | Espaço Utilizado: 262,8 GB | Porcentagem de espaço livre: 5,97 %  "


    Tetei rodar remotamente pra outro cliente usando o comando abaixo mais não tive sucesso. Ele executou o comando, disse que nao deu erro mais não mostrou o resultado (eu executei sem a linha "On error resume Next").

    "psexec @clientes.txt -u DOMINIO\USUARIO -p SENHA -c cscript \\p2516\logdescript\geral.vbs"

    Agora como podemos melhora-lo ?

    1- Pegar essa informação de todos os clientes do Dominio. (acho que pra isso é só mudar na hora de executar o PSEXEC)
    2 - Transformar pra Excel porque BD aqui é meio burocratico pra usar.
    3 - Mudar o formato da data no resultado (DATA DA VERSAO : 2009/12/07)
    4 - Adicionar a data em que o script foi executado.

    Obs: To procurando algum material para interagir um pouco melhor com vbscipt, voce tem alguma coisa ae que possa me passar por email ?
    Desde já agradeço !

    Ainda não rs.... altere o parametro do strLog = "./log-"&dataF&".txt"
    Para strLog = "
    \\seuservidor\suapasta\Log-"&data&".txt"

    No psexec utilize ele direcionando a um terminal e não ao @clientes.txt.

    Ex:  psexec \\p2542 -u DOMINIO\USUARIO -p SENHA -c cscript \\p2516\logdescript\geral.vbs

    Poste os resultados!
    Depois que ele salvar na rede e funcionar em todos os terminais podemos alterar...

    Mais facil executar uma coisa de cada x.

    []s,



    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    terça-feira, 8 de dezembro de 2009 12:55
  • Paskaw, como material.

    Possuem vários post aqui no forum. Inclusive o Vinicius Canto, postou alguns link com material para aprendizado.
    Utilize o search e que irá encontrar.

    []s,

    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    terça-feira, 8 de dezembro de 2009 12:56
  • Funcionou tanto para "psexec \\p2542 -u DOMINIO\USUARIO -p SENHA -c cscript \\p2516\logdescript\geral.vbs", quanto para "psexec @cliente.txt -u DOMINIO\USUARIO -p SENHA -c cscript \\p2516\logdescript\geral.vbs"
    terça-feira, 8 de dezembro de 2009 16:38
  • Funcionou tanto para "psexec \\p2542 -u DOMINIO\USUARIO -p SENHA -c cscript \\p2516\logdescript\geral.vbs", quanto para "psexec @cliente.txt -u DOMINIO\USUARIO -p SENHA -c cscript \\p2516\logdescript\geral.vbs"

    Defina a planilha excel.

    Tem com gravamos as informações na planilha....sem problemas.
    Só que...

    Assim...

    COMPUTADOR 1 | COMPUTADOR 2 | COMPUTADOR 3 | COMPUTADOR 4

    Ou assim

    COMPUTADOR 1
    ------------------
    COMPUTADOR 2
    ------------------
    COMPUTADOR 3
    ------------------
    COMPUTADOR 4
    ------------------

    Poste...

    []s,


    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    terça-feira, 8 de dezembro de 2009 19:14
  • Prefiro assim

    COMPUTADOR| Data corrente| Ultimo Boot   | Ultima atualizacao |Versão do update                             | Versao do AV |Data          | Particao |Espaco livre| etc...
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    P2345            |  8/12/2009    |   30/10/2009 |   2/11/2009          | Security Update ... 2003 (KB973443) |  5825            | 30/10/2009| C:        | 2 Gb            .etc...

    Entre computador e data poderiamos adicionar o logon de quem está logado no momento...Sem querer explorar mais :) ficaria perfeito !

    Obrigadão ..

     Eu to lendo algumas apostilas e tutoriais pra tentar implementar mais algumas coisas no futuro.
    Mais ainda não achei "o" material só acho fragmentos .

    terça-feira, 8 de dezembro de 2009 20:05
  • Prefiro assim

    COMPUTADOR| Data corrente| Ultimo Boot   | Ultima atualizacao |Versão do update                             | Versao do AV |Data          | Particao |Espaco livre| etc...
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    P2345            |  8/12/2009    |   30/10/2009 |   2/11/2009          | Security Update ... 2003 (KB973443) |  5825            | 30/10/2009| C:        | 2 Gb            .etc...

    Entre computador e data poderiamos adicionar o logon de quem está logado no momento...Sem querer explorar mais :) ficaria perfeito !

    Obrigadão ..

     Eu to lendo algumas apostilas e tutoriais pra tentar implementar mais algumas coisas no futuro.
    Mais ainda não achei "o" material só acho fragmentos .


    Veja

    http://msdn.microsoft.com/en-us/library/dcw63t7z(VS.85).aspx

    Enjoy!


    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    terça-feira, 8 de dezembro de 2009 21:24
  • Prefiro assim

    COMPUTADOR| Data corrente| Ultimo Boot   | Ultima atualizacao |Versão do update                             | Versao do AV |Data          | Particao |Espaco livre| etc...
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    P2345            |  8/12/2009    |   30/10/2009 |   2/11/2009          | Security Update ... 2003 (KB973443) |  5825            | 30/10/2009| C:        | 2 Gb            .etc...

    Entre computador e data poderiamos adicionar o logon de quem está logado no momento...Sem querer explorar mais :) ficaria perfeito !

    Obrigadão ..

     Eu to lendo algumas apostilas e tutoriais pra tentar implementar mais algumas coisas no futuro.
    Mais ainda não achei "o" material só acho fragmentos .


    Não tem como =(

    Como vc executa ele pelo PSexec - Ele vai identificar que qm está logado é o Usuário que vc informou....
    Entendeu?

    []s,

    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    terça-feira, 8 de dezembro de 2009 21:25
  • Paskaw. Bom dia.

    A execução e criação de planilhas excel funciona da segunte forma...
    Ex de código:

    Set objExcel = CreateObject("Excel.Application")
    Set WshShell = WScript.CreateObject("WScript.Shell")


    StrCompName = WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
    StrFileName = "c:\"&StrCompName&"1.xls"


    Set objworkbook = objExcel.Workbooks.Add

    objExcel.Visible = True

    objExcel.Cells(1, 1).Value = "Computador"
    objExcel.Cells(1, 1).Font.Bold = FALSE
    objExcel.Cells(1, 1).Font.Size = 12
    objExcel.Cells(1, 1).Font.ColorIndex = 3


    objExcel.Cells(1, 2).Value = "Data Corrente"
    objExcel.Cells(1, 2).Font.Bold = FALSE
    objExcel.Cells(1, 2).Font.Size = 12
    objExcel.Cells(1, 2).Font.ColorIndex = 3

    objExcel.Cells(1, 3).Value = "Ultimo boot"
    objExcel.Cells(1, 3).Font.Bold = FALSE
    objExcel.Cells(1, 3).Font.Size = 12
    objExcel.Cells(1, 3).Font.ColorIndex = 3


    objWorkbook.SaveAs StrFileName
    objExcel.Save
    objExcel.Quit

    Set objExcel = Nothing
    Set WshShell = Nothing

    Com esse exemplo vc teria que adaptar as colunas e as linhas para as informações.
    No próprio txt vc teria como simplesmente criar essa planilha, efetuar o type (que unifica os logs)  e após isso importar para o excel informando o delimitador.

    Ex:


    'Inicio do script
    'Obtem dados do McAfee + UltBoot/Atualização + HD


    StrComputer = "."

    'On error resume Next

    data = split(Date(),"/",-1)
    DataF = data(0)&data(1)&data(2)
    DataFCB = data(0)&"/"&data(1)&"/"&data(2)

    strLog = "./log-"&dataF&".txt"

    set FSo = CreateObject("Scripting.FileSystemObject")
    Set ArqLog = FSO.OpenTextFile(strLog, 8, True, 0)

    Set objShell = CreateObject("WScript.Shell")
    Set WshShell = WScript.CreateObject("WScript.Shell")

    strCompName = WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")

    'Dados!
    'Obtem todos os dados

    '::::::::::::::::::::::::::::::::::
    'Data do ultimo BOOT
    '::::::::::::::::::::::::::::::::::

    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set objDtBoot = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem")

    For each objBoot in objDtBoot
    DtUltBoot = FormatDataTime(objBoot.LastBootUpTime)
    Next

    '::::::::::::::::::::::::::::::::::
    'Lista Ultima atualização
    '::::::::::::::::::::::::::::::::::

    Set objSession = CreateObject("Microsoft.Update.Session")
    Set objSearcher = objSession.CreateUpdateSearcher

    Set colHistory = objSearcher.QueryHistory(1, 1)

    For Each objEntry in colHistory
        UltAtu = objEntry.Title
        DtUltAtu = objEntry.Date
    Next
    ':::::::::::::::::::::::::::::::::::::
    'Cria Txt Com dados
    ':::::::::::::::::::::::::::::::::::::

    'LogFileName

    Set objFSO = CreateObject("Scripting.FileSystemObject")


    'Edita darta
    Data = Date()
    DtAt = Split(data,"/",-1)
    DataLog = DtAt(0)&DtAt(1)&DtAt(2)

    '::::::::::::::::::::::::::::::::::
    'Data / DAT do McAfee
    '::::::::::::::::::::::::::::::::::

    strChave = "HKEY_LOCAL_MACHINE\SOFTWARE\Mcafee\AvEngine\AVDatVersion"
    strValor = objShell.RegRead(strChave)

    strChave = "HKEY_LOCAL_MACHINE\SOFTWARE\Mcafee\AvEngine\AVDatDate"
    strValordate = objShell.RegRead(strChave)

    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE DriveType=3",,48)
    For Each objItem in colItems

    strDiskLabel = objitem.Caption
    strDiskSize = objItem.Size
    strDiskFree = objItem.FreeSpace
    strDiskUsed = (strDiskSize - strDiskFree)
    strDiskPercentageFree = FormatNumber(((objItem.FreeSpace/objItem.Size)*100),2)

    '\STRDADOS = "Servidor: " & strCompName & " | Disco lógico: " & objItem.Caption & "| Espaço livre: " & ConvertSize(strDiskFree) & " | Espaço Utilizado: " & ConvertSize(strDiskUsed) & " | Porcentagem de espaço livre: " & strDiskPercentageFree & " %"
    'ArqLog.WriteLine(STRDADOS)
    Next

    ArqLog.WriteLine strCompName&";"&DataFCB&";"&DtUltBoot&";"&UltAtu&";"&DtUltAtu&";"&strValor&";"&strValordate&";"&strDiskLabel&";"&ConvertSize(strDiskFree)&";"&ConvertSize(strDiskUsed)&";"&strDiskPercentageFree&"%;"

    ArqLog.Close()


    '::::::::::::::::::::FUNÇÕES

    Function FormatDataTime(VarDateCheck)
    LeftStr = Left(VarDateCheck, 14)
    TSec = Mid(LeftStr, 13, 2)
    THora = Mid(LeftStr, 9, 2)
    TMin = Mid(LeftStr, 11, 2)
    DYear = Left(LeftStr, 4)
    DMonth = Mid(LeftStr, 5, 2)
    DDay = Mid(LeftStr, 7, 2)

    FormatDataTime = DDay & "/" & DMonth & "/" & DYear &" - "&THora&":"&Tmin&":"&TSec
    End Function

    Function ConvertSize(Size)
    Do While InStr(Size,",") 'Remove commas from size
        CommaLocate = InStr(Size,",")
        Size = Mid(Size,1,CommaLocate - 1) & _
            Mid(Size,CommaLocate + 1,Len(Size) - CommaLocate)
    Loop
    Suffix = " Bytes"
    If Size >= 1024 Then suffix = " KB"
    If Size >= 1048576 Then suffix = " MB"
    If Size >= 1073741824 Then suffix = " GB"
    If Size >= 1099511627776 Then suffix = " TB"
    Select Case Suffix
        Case " KB" Size = Round(Size / 1024, 1)
        Case " MB" Size = Round(Size / 1048576, 1)
        Case " GB" Size = Round(Size / 1073741824, 1)
        Case " TB" Size = Round(Size / 1099511627776, 1)
    End Select
    ConvertSize = Size & Suffix
    End Function
     


    Em ambas eu efetuei testes preliminares. E funcionaram perfeitamente.
    Caso precise de um programa para identar o código, poderá usar  notepad ++, VbsEdit, etc....

    Efetue os testes e poste os resultados!
    []s,


    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    • Editado Marcellus Bockorny quarta-feira, 9 de dezembro de 2009 13:04 Acerto StrValor (McAfee)
    quarta-feira, 9 de dezembro de 2009 13:02
  • Não testei ainda to meio agarrado em outro projeto aqui na empresa. Assim que testar eu posto o resultado. Tenho pesquisado no forum alguma forma para gerar uma lista em .txt dos computadores no AD mais ainda não achei nada, você conhece algum script pra isso ?


    Paskaw, bom dia.

    Quando a abordagem for de outro assunto, por favor abra um novo post. Fica mais fácil para procurar...
    Quanto a lista, voce pode exportar a lista direto pelo AD.

    Mas segue script.

    Const ADS_SCOPE_SUBTREE = 2

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection

    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

    strLog = "./UsersAD.txt"
    set FSo = CreateObject("Scripting.FileSystemObject")
    Set ArqLog = FSO.OpenTextFile(strLog, 8, True, 0)


    objCommand.CommandText = _
        "Select samAccountName FROM 'LDAP://OU=contoso,dc=contoso,dc=localdomain' WHERE objectCategory='user' "
    Set objRecordSet = objCommand.Execute

    Do Until objRecordSet.EOF
     strUser = objRecordSet.Fields("samAccountName").Value

     ArqLog.writeline strUser

    objRecordSet.MoveNext

    Loop

    ArqLog.close()

    Wscript.echo "Usuários Exportados"


    Efetue os testes o poste os resultados!
    Se util classifique!

    Lembrando que a categoria para localizar computadores é computer.

    []s,



    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    segunda-feira, 14 de dezembro de 2009 13:23
  • Eu ja tinha conseguido essa questão do AD, (até apaguei a pergunta) mais obrigado mesmo assim.

    Com relação ao script do excel, ele tambem rodou aqui mais eu não entedi como eu fasso para cruzar as informações dos scripts citados acima ?

    Exemplo

    O primeiro script apenas criou um arquivo do excel com as colunas "computador", "data corrente" , "ultimo boot", porém ambas em branco.

    O segundo criou o txt com as informações anteriores formatado em linha.

    Como eu posso cruzar essas informações ?



     
    terça-feira, 15 de dezembro de 2009 11:36
  • Eu ja tinha conseguido essa questão do AD, (até apaguei a pergunta) mais obrigado mesmo assim.

    Com relação ao script do excel, ele tambem rodou aqui mais eu não entedi como eu fasso para cruzar as informações dos scripts citados acima ?

    Exemplo

    O primeiro script apenas criou um arquivo do excel com as colunas "computador", "data corrente" , "ultimo boot", porém ambas em branco.

    O segundo criou o txt com as informações anteriores formatado em linha.

    Como eu posso cruzar essas informações ?



     
    Bom dia paskaw.

    Exemplificarei os scripts acima.


    1 - Excel: Ele cria as colunas e mostra como salvar os valores nos campos. Com isso vc teria que editar de acordo com o script criado.
    2 - Txt: Ele cria os campos em colunas, separados por vigura....o processo ficaria assim:

    1 - Roda em todos os terminais:
         Pasta na rede: PC1.txt
                               PC2.txt
                               PC20.txt

    Usaria o type para unificar os arquivos.txt, ele ficaria assim:

    PC01;15/12/2009;15/12/2009 - 08:30:06;Microsoft Silverlight (KB974331);14/12/2009 16:34:54;;;F:;37,2 GB;102,3 MB;99,73%;
    PC02;15/12/2009;15/12/2009 - 08:30:06;Microsoft Silverlight (KB974331);14/12/2009 16:34:54;;;F:;37,2 GB;102,3 MB;99,73%;
    PC03;15/12/2009;15/12/2009 - 08:30:06;Microsoft Silverlight (KB974331);14/12/2009 16:34:54;;;F:;37,2 GB;102,3 MB;99,73%;
    PC04;15/12/2009;15/12/2009 - 08:30:06;Microsoft Silverlight (KB974331);14/12/2009 16:34:54;;;F:;37,2 GB;102,3 MB;99,73%;

    Com isso vc apenas precisaria importar para o excel informando o delimitador. Que nesse caso seria o ";".

    E teria as informações que precisa em uma unica planilha já pre formatada.
    Ex:

    Terminal Data Ultimo Update Pacote Data McAfee DAT Unidade Espaço Total Espaço usado %Livre
    BOCKORNY 15/12/2009 15/12/2009 - 08:30:06 Microsoft Silverlight (KB974331) 14/12/2009 16:34 C: 37,2 GB 102,3 MB 99,73%


    No caso meu McAfee + DAT, estão em branco pois eu não os tenho no meu terminal.

    Poste os resultados!
    Qualquer duvida poste!

    []s,





    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    terça-feira, 15 de dezembro de 2009 12:35
  • Quanto a cruzar informações, no excel seria mais viável.
    Lembre-se de adaptar a execução das unidades de disco. Como é um for each, ele retorna 1ª ou mais...

    Qualquer duvida poste.

    []s,

    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    terça-feira, 15 de dezembro de 2009 12:38
  • Bom dia, não sei se eu entendi muito bem, antes eu havia rodado os scripts em .vbs separados, rodei primeiro o script que gera o txt e depois o que gera o .xls, por isso eu perguntei como crusar as informações. Pois a planilha estava sendo mostrada com os campos em branco conforme disse acima.

    Agora eu juntei os 2 scripts em um arquivo .vbs e rodei, o resultado foi o seguinte:

    Assim que eu rodei ele abriu o excel e me fez a seguinte pergunta: "A file named "Resume.xlw" already exists in this location. Do you want to replaceit ?", Eu cliquei em "yes" e ele criou o arquivo excel com o nome da minha maquina mais apenas com as colunas "computador", "data corrente" , "ultimo boot", porém ambas em branco. (sem as informações)
    Eu procurei na pasta em que estou rodando o script e não achei nenhum arquivo "Resume.xlw" .

    Desde já agradeço.
    terça-feira, 15 de dezembro de 2009 14:07
  • Bom dia, não sei se eu entendi muito bem, antes eu havia rodado os scripts em .vbs separados, rodei primeiro o script que gera o txt e depois o que gera o .xls, por isso eu perguntei como crusar as informações. Pois a planilha estava sendo mostrada com os campos em branco conforme disse acima.

    Agora eu juntei os 2 scripts em um arquivo .vbs e rodei, o resultado foi o seguinte:

    Assim que eu rodei ele abriu o excel e me fez a seguinte pergunta: "A file named "Resume.xlw" already exists in this location. Do you want to replaceit ?", Eu cliquei em "yes" e ele criou o arquivo excel com o nome da minha maquina mais apenas com as colunas "computador", "data corrente" , "ultimo boot", porém ambas em branco. (sem as informações)
    Eu procurei na pasta em que estou rodando o script e não achei nenhum arquivo "Resume.xlw" .

    Desde já agradeço.

    Paskaw, boa tarde.

    O script que gera o xml está incompleto. Apenas exemplifiquei a criação dele, sendo necessário editar os campos.
    A forma mais viável ao meu ver seria o txt importando para a planilha do excel. Pois seria mais facil a adaptação.

    Segue a planilha do excel (Apenas um exemplo).

    http://uploaddearquivos.com.br/download/ModeloPlanExcel.xlsx

    Segue o script que gera o txt.


    'Inicio do script
    'Obtem dados do McAfee + UltBoot/Atualização + HD


    StrComputer = "."

    On error resume Next

    data = split(Date(),"/",-1)
    DataF = data(0)&data(1)&data(2)
    DataFCB = data(0)&"/"&data(1)&"/"&data(2)

    strLog = "./log-"&dataF&".txt"

    set FSo = CreateObject("Scripting.FileSystemObject")
    Set ArqLog = FSO.OpenTextFile(strLog, 8, True, 0)

    Set objShell = CreateObject("WScript.Shell")
    Set WshShell = WScript.CreateObject("WScript.Shell")

    strCompName = WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")

    'Dados!
    'Obtem todos os dados

    '::::::::::::::::::::::::::::::::::
    'Data do ultimo BOOT
    '::::::::::::::::::::::::::::::::::

    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set objDtBoot = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem")

    For each objBoot in objDtBoot
    DtUltBoot = FormatDataTime(objBoot.LastBootUpTime)
    Next

    '::::::::::::::::::::::::::::::::::
    'Lista Ultima atualização
    '::::::::::::::::::::::::::::::::::

    Set objSession = CreateObject("Microsoft.Update.Session")
    Set objSearcher = objSession.CreateUpdateSearcher

    Set colHistory = objSearcher.QueryHistory(1, 1)

    For Each objEntry in colHistory
        UltAtu = objEntry.Title
        DtUltAtu = objEntry.Date
    Next
    ':::::::::::::::::::::::::::::::::::::
    'Cria Txt Com dados
    ':::::::::::::::::::::::::::::::::::::

    'LogFileName

    Set objFSO = CreateObject("Scripting.FileSystemObject")


    'Edita darta
    Data = Date()
    DtAt = Split(data,"/",-1)
    DataLog = DtAt(0)&DtAt(1)&DtAt(2)

    '::::::::::::::::::::::::::::::::::
    'Data / DAT do McAfee
    '::::::::::::::::::::::::::::::::::

    strChave = "HKEY_LOCAL_MACHINE\SOFTWARE\Mcafee\AvEngine\AVDatVersion"
    strValor = objShell.RegRead(strChave)

    strChave = "HKEY_LOCAL_MACHINE\SOFTWARE\Mcafee\AvEngine\AVDatDate"
    strValordate = objShell.RegRead(strChave)

    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE DriveType=3",,48)
    For Each objItem in colItems

    strDiskLabel = objitem.Caption
    strDiskSize = objItem.Size
    strDiskFree = objItem.FreeSpace
    strDiskUsed = (strDiskSize - strDiskFree)
    strDiskPercentageFree = FormatNumber(((objItem.FreeSpace/objItem.Size)*100),2)

    STRDADOS = STRDADOS + "UNIDADE: "&objItem.Caption & " Espaço livre: " & ConvertSize(strDiskFree) & " Espaço Utilizado: " & ConvertSize(strDiskUsed) & " | Porcentagem de espaço livre: " & strDiskPercentageFree & " %;"
    'ArqLog.WriteLine(STRDADOS)
    Next

    ArqLog.WriteLine strCompName&";"&DataFCB&";"&DtUltBoot&";"&UltAtu&";"&DtUltAtu&";"&strValor&";"&strValordate&";"&STRDADOS&";"

    ArqLog.Close()


    '::::::::::::::::::::FUNÇÕES

    Function FormatDataTime(VarDateCheck)
    LeftStr = Left(VarDateCheck, 14)
    TSec = Mid(LeftStr, 13, 2)
    THora = Mid(LeftStr, 9, 2)
    TMin = Mid(LeftStr, 11, 2)
    DYear = Left(LeftStr, 4)
    DMonth = Mid(LeftStr, 5, 2)
    DDay = Mid(LeftStr, 7, 2)

    FormatDataTime = DDay & "/" & DMonth & "/" & DYear &" - "&THora&":"&Tmin&":"&TSec
    End Function


    Function ConvertSize(Size)
    Do While InStr(Size,",") 'Remove commas from size
        CommaLocate = InStr(Size,",")
        Size = Mid(Size,1,CommaLocate - 1) & _
            Mid(Size,CommaLocate + 1,Len(Size) - CommaLocate)
    Loop
    Suffix = " Bytes"
    If Size >= 1024 Then suffix = " KB"
    If Size >= 1048576 Then suffix = " MB"
    If Size >= 1073741824 Then suffix = " GB"
    If Size >= 1099511627776 Then suffix = " TB"
    Select Case Suffix
        Case " KB" Size = Round(Size / 1024, 1)
        Case " MB" Size = Round(Size / 1048576, 1)
        Case " GB" Size = Round(Size / 1073741824, 1)
        Case " TB" Size = Round(Size / 1099511627776, 1)
    End Select
    ConvertSize = Size & Suffix
    End Function


    []s,





    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    terça-feira, 15 de dezembro de 2009 16:02
  • Paskaw, boa tarde.

    Como ficou o processo da planilha?

    Nos atualize!
    []s,

    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    quinta-feira, 17 de dezembro de 2009 17:40