Inquiridor
Juntando e Filtrando Scripts

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
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.CreateUpdateSearcherSet 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: "&UltAtuArqLog.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 : " & strValordateArqLog.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)
NextArqLog.Close()
'::::::::::::::::::::FUNÇÕESFunction 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 FunctionFunction 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"- Editado Marcellus Bockorny segunda-feira, 7 de dezembro de 2009 17:47 Acerto Dim
-
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
-
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.CreateUpdateSearcherSet 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: "&UltAtuArqLog.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 & VBCRLFArqLog.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)
NextArqLog.Close()
'::::::::::::::::::::FUNÇÕESFunction 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 FunctionFunction 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
-
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 ! -
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" -
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" -
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"
-
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" -
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 .
-
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" -
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" -
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.AddobjExcel.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 = 3objExcel.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.QuitSet 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.CreateUpdateSearcherSet 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 colItemsstrDiskLabel = 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)
NextArqLog.WriteLine strCompName&";"&DataFCB&";"&DtUltBoot&";"&UltAtu&";"&DtUltAtu&";"&strValor&";"&strValordate&";"&strDiskLabel&";"&ConvertSize(strDiskFree)&";"&ConvertSize(strDiskUsed)&";"&strDiskPercentageFree&"%;"
ArqLog.Close()
'::::::::::::::::::::FUNÇÕESFunction 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 FunctionFunction 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)
-
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 = 2Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnectionobjCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREEstrLog = "./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.ExecuteDo Until objRecordSet.EOF
strUser = objRecordSet.Fields("samAccountName").ValueArqLog.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" -
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 ?
-
Eu ja tinha conseguido essa questão do AD, (até apaguei a pergunta) mais obrigado mesmo assim.
Bom dia paskaw.
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 ?
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" -
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" -
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. -
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.CreateUpdateSearcherSet 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 colItemsstrDiskLabel = 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)
NextArqLog.WriteLine strCompName&";"&DataFCB&";"&DtUltBoot&";"&UltAtu&";"&DtUltAtu&";"&strValor&";"&strValordate&";"&STRDADOS&";"
ArqLog.Close()
'::::::::::::::::::::FUNÇÕESFunction 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" -