Last active
February 23, 2016 19:58
-
-
Save richardsonlima/fadfb91d524aac1bfb21 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Created by Richardson Lima | |
# Create a file e.g: Run.bat and put this | |
# powershell -command "& {C:\Env\Script\WinServerReport.ps1 .\ServerList.txt}" | |
# | |
$date = Get-Date | |
$d = $date.day | |
$m = $date.month | |
$y = $date.year | |
$hoje = "$d$m$y" | |
$path = "C:\Env\Relatorio\$hoje" | |
New-Item -Path $path -ItemType directory -Force | |
############################################################### | |
$pw = Get-Content C:\Env\Credencial.txt | ConvertTo-SecureString | |
$cred = New-Object System.Management.Automation.PsCredential("user", $pw) | |
############################################################### | |
#Variables | |
$list = $args[0] | |
$computers = get-content $list | |
$thresholdspace = 20 | |
[int]$EventNum = 5 | |
[int]$ProccessNumToFetch = 10 | |
$ListOfAttachments = @() | |
$Report = @() | |
$CurrentTime = Get-Date | |
Function Get-HostUptime { | |
param ([string]$ComputerName) | |
$Uptime = Get-WmiObject -Class Win32_OperatingSystem -ComputerName $ComputerName | |
$LastBootUpTime = $Uptime.ConvertToDateTime($Uptime.LastBootUpTime) | |
$Time = (Get-Date) - $LastBootUpTime | |
Return '{0:00} Days, {1:00} Hours, {2:00} Minutes, {3:00} Seconds' -f $Time.Days, $Time.Hours, $Time.Minutes, $Time.Seconds | |
} | |
# Assemble the HTML Header and CSS | |
$HTMLHeader = @" | |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> | |
<html><head><title>ATI - Relatório diário Windows Server</title> | |
<style type="text/css"> | |
<!-- | |
body { | |
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; | |
} | |
#report { width: 835px; } | |
table{ | |
border-collapse: collapse; | |
border: none; | |
font: 10pt Verdana, Geneva, Arial, Helvetica, sans-serif; | |
color: black; | |
margin-bottom: 10px; | |
} | |
table td{ | |
font-size: 12px; | |
padding-left: 0px; | |
padding-right: 20px; | |
text-align: left; | |
} | |
table th { | |
font-size: 12px; | |
font-weight: bold; | |
padding-left: 0px; | |
padding-right: 20px; | |
text-align: left; | |
} | |
h2{ clear: both; font-size: 130%; } | |
h3{ | |
clear: both; | |
font-size: 115%; | |
margin-left: 20px; | |
margin-top: 30px; | |
} | |
p{ margin-left: 20px; font-size: 12px; } | |
table.list{ float: left; } | |
table.list td:nth-child(1){ | |
font-weight: bold; | |
border-right: 1px grey solid; | |
text-align: right; | |
} | |
table.list td:nth-child(2){ padding-left: 7px; } | |
table tr:nth-child(even) td:nth-child(even){ background: #CCCCCC; } | |
table tr:nth-child(odd) td:nth-child(odd){ background: #F2F2F2; } | |
table tr:nth-child(even) td:nth-child(odd){ background: #DDDDDD; } | |
table tr:nth-child(odd) td:nth-child(even){ background: #E5E5E5; } | |
div.column { width: 320px; float: left; } | |
div.first{ padding-right: 20px; border-right: 1px grey solid; } | |
div.second{ margin-left: 30px; } | |
table{ margin-left: 20px; } | |
--> | |
.logo { | |
width: 290px; | |
height: 63px; | |
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOUAAAA1CAYAAAC+9yw5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NjEyMDdBRDBDNDkxMUUzOTc2NEUyRUI0MkU2NkM0NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NjEyMDdBRTBDNDkxMUUzOTc2NEUyRUI0MkU2NkM0NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc2MTIwN0FCMEM0OTExRTM5NzY0RTJFQjQyRTY2QzQ0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc2MTIwN0FDMEM0OTExRTM5NzY0RTJFQjQyRTY2QzQ0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+z0y3KgAAEuhJREFUeNrsXQmY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) no-repeat; | |
} | |
</style> | |
</head> | |
<body> | |
"@ | |
foreach ($computer in $computers) { | |
$DiskInfo= Get-WMIObject -ComputerName $computer Win32_LogicalDisk | Where-Object{$_.DriveType -eq 3} | Where-Object{ ($_.freespace/$_.Size)*100 -lt $thresholdspace} ` | |
| Select-Object SystemName, DriveType, VolumeName, Name, @{n='Size (GB)';e={"{0:n2}" -f ($_.size/1gb)}}, @{n='FreeSpace (GB)';e={"{0:n2}" -f ($_.freespace/1gb)}}, @{n='PercentFree';e={"{0:n2}" -f ($_.freespace/$_.size*100)}} | ConvertTo-HTML -fragment | |
#region System Info | |
$OS = (Get-WmiObject Win32_OperatingSystem -computername $computer).caption | |
$AVGProc = Get-WmiObject -computername $computer win32_processor | Measure-Object -property LoadPercentage -Average | Select Average | |
$OS2 = gwmi -Class win32_operatingsystem -computername $computer | Select-Object @{Name = "MemoryUsage"; Expression = {"{0:N2}" -f ((($_.TotalVisibleMemorySize - $_.FreePhysicalMemory)*100)/ $_.TotalVisibleMemorySize) }} | |
$CPULoad = "$($AVGProc.Average)%" | |
$MemLoad = "$($OS2.MemoryUsage)%" | |
$SystemInfo = Get-WmiObject -Class Win32_OperatingSystem -computername $computer | Select-Object Name, TotalVisibleMemorySize, FreePhysicalMemory | |
$TotalRAM = $SystemInfo.TotalVisibleMemorySize/1MB | |
$FreeRAM = $SystemInfo.FreePhysicalMemory/1MB | |
$UsedRAM = $TotalRAM - $FreeRAM | |
$RAMPercentFree = ($FreeRAM / $TotalRAM) * 100 | |
$TotalRAM = [Math]::Round($TotalRAM, 2) | |
$FreeRAM = [Math]::Round($FreeRAM, 2) | |
$UsedRAM = [Math]::Round($UsedRAM, 2) | |
$RAMPercentFree = [Math]::Round($RAMPercentFree, 2) | |
#endregion | |
$TopProcesses = Get-Process -ComputerName $computer | Sort WS -Descending | Select ProcessName, Id, WS -First $ProccessNumToFetch | ConvertTo-Html -Fragment | |
#region Services Report | |
$ServicesReport = @() | |
$Services = Get-WmiObject -Class Win32_Service -ComputerName $computer | Where {($_.StartMode -eq "Auto") -and ($_.State -eq "Stopped")} | |
foreach ($Service in $Services) { | |
$row = New-Object -Type PSObject -Property @{ | |
Name = $Service.Name | |
Status = $Service.State | |
StartMode = $Service.StartMode | |
} | |
$ServicesReport += $row | |
} | |
$ServicesReport = $ServicesReport | ConvertTo-Html -Fragment | |
#endregion | |
#region Event Logs Report | |
$SystemEventsReport = @() | |
$SystemEvents = Get-EventLog -ComputerName $computer -LogName System -EntryType Error,Warning -Newest $EventNum | |
foreach ($event in $SystemEvents) { | |
$row = New-Object -Type PSObject -Property @{ | |
TimeGenerated = $event.TimeGenerated | |
EntryType = $event.EntryType | |
Source = $event.Source | |
Message = $event.Message | |
} | |
$SystemEventsReport += $row | |
} | |
$SystemEventsReport = $SystemEventsReport | ConvertTo-Html -Fragment | |
$ApplicationEventsReport = @() | |
$ApplicationEvents = Get-EventLog -ComputerName $computer -LogName Application -EntryType Error,Warning -Newest $EventNum | |
foreach ($event in $ApplicationEvents) { | |
$row = New-Object -Type PSObject -Property @{ | |
TimeGenerated = $event.TimeGenerated | |
EntryType = $event.EntryType | |
Source = $event.Source | |
Message = $event.Message | |
} | |
$ApplicationEventsReport += $row | |
} | |
$ApplicationEventsReport = $ApplicationEventsReport | ConvertTo-Html -Fragment | |
$SecurityEventsReport = @() | |
$SecurityEvents = Get-EventLog -ComputerName $computer security -EntryType Error,Warning -Newest $EventNum | |
foreach ($event in $SecurityEvents) { | |
$row = New-Object -Type PSObject -Property @{ | |
TimeGenerated = $event.TimeGenerated | |
EntryType = $event.EntryType | |
Source = $event.Source | |
Message = $event.Message | |
} | |
$SecurityEventsReport += $row | |
} | |
$SecurityEventsReport = $SecurityEventsReport | ConvertTo-Html -Fragment | |
#endregion | |
#region Uptime | |
# Fetch the Uptime of the current system using our Get-HostUptime Function. | |
$SystemUptime = Get-HostUptime -ComputerName $computer | |
#endregion | |
# HTML Report | |
$CurrentSystemHTML = @" | |
<div id="logo"> | |
<img alt="" <div class="logo"/> | |
</a> | |
</div> | |
<hr noshade size=3 width="100%"> | |
<div id="report"> | |
<p><h2>Relatório do Servidor $computer - ORG</p></h2> | |
<h3>Informações do Sistema</h3> | |
<table class="list"> | |
<tr> | |
<td>Uptime</td> | |
<td>$SystemUptime</td> | |
</tr> | |
<tr> | |
<td>Hostname</td> | |
<td>$GetHostname</td> | |
<td>$Hostname</td> | |
</tr> | |
<tr> | |
<td>Sistema Operacional</td> | |
<td>$OS</td> | |
</tr> | |
<tr> | |
<td>Total RAM (GB)</td> | |
<td>$TotalRAM</td> | |
</tr> | |
<tr> | |
<td>RAM Livre (GB)</td> | |
<td>$FreeRAM</td> | |
</tr> | |
<tr> | |
<td>Percentual de RAM Livre</td> | |
<td>$RAMPercentFree</td> | |
</tr> | |
<tr> | |
<td>Carga CPU</td> | |
<td>$CPULoad</td> | |
</tr> | |
<tr> | |
<td>Carga RAM</td> | |
<td>$MemLoad</td> | |
</tr> | |
</table> | |
<!-- <IMG SRC="chart-$computer.png" ALT="$computer Chart"> --> | |
<h3>Informações de disco</h3> | |
<p>O(s) disco(s) listados abaixo tem menos que $thresholdspace % de espaço livre. Discos acima do valor de threshold não seram listados aqui.</p> | |
<p>Obs: A ausência de qualquer informação relativa ao item acima, evidência que não ocorreram eventos no período da coleta.</p> | |
<table class="normal">$DiskInfo</table> | |
<br></br> | |
<div class="first column"> | |
<h3>Processos do sistema - Top $ProccessNumToFetch - Maior uso de memória</h3> | |
<p>Os $ProccessNumToFetch processos abaixo estão com um valor muito alto de consumo de Working Set (WS) Memory (bytes) no servidor $computer</p> | |
<p>Obs: A ausência de qualquer informação relativa ao item acima, evidência que não ocorreram eventos no período da coleta.</p> | |
<table class="normal">$TopProcesses</table> | |
</div> | |
<div class="second column"> | |
<h3>Serviços do sistema - Habilitados automaticamente, mas não estão funcionando</h3> | |
<p>Os serviços abaixo estão definidos para inicialização automática, mas ainda não estão em execução no servidor $computer</p> | |
<p>Obs: A ausência de qualquer informação relativa ao item acima, evidência que não ocorreram eventos no período da coleta.</p> | |
<table class="normal">$ServicesReport</table> | |
</div> | |
<h3>Log de eventos - Ultimos $EventNum logs de eventos de System/Application que contém Warnings ou Errors</h3> | |
<p>Veja abaixo a lista dos ultimos $EventNum <b>eventos de log de sistema</b> que tiveram como característica Warning ou Error no servidor $computer</p> | |
<p>Obs: A ausência de qualquer informação relativa ao item acima, evidência que não ocorreram eventos no período da coleta.</p> | |
<table class="normal">$SystemEventsReport</table> | |
<p>Veja abaixo a lista dos ultimos $EventNum <b>eventos de log de aplicação</b> que tiveram como característica Warning ou Error no servidor $computer</p> | |
<p>Obs: A ausência de qualquer informação relativa ao item acima, evidência que não ocorreram eventos no período da coleta.</p> | |
<table class="normal">$ApplicationEventsReport</table> | |
<p>Veja abaixo a lista dos ultimos $EventNum <b>eventos de log de segurançca</b> que tiveram como característica Warning ou Error no servidor $computer</p> | |
<p>Obs: A ausência de qualquer informação relativa ao item acima, evidência que não ocorreram eventos no período da coleta.</p> | |
<table class="normal">$SecurityEventsReport</table> | |
"@ | |
# Add the current System HTML Report into the final HTML Report body | |
$HTMLMiddle += $CurrentSystemHTML | |
} | |
# Assemble the closing HTML . | |
$HTMLEnd = @" | |
</div> | |
</body> | |
</html> | |
"@ | |
# Assemble the final report from all our HTML sections | |
$HTMLmessage = $HTMLHeader + $HTMLMiddle + $HTMLEnd | |
# Save the report out to a file in the current path | |
$HTMLmessage | Out-File ((Get-Location).Path + "\RelatorioDiarioATIWindowsServer-$hoje.html") | |
$pathcopy = "C:\Env\Relatorio\$hoje" | |
Copy-Item -Path C:\Env\Script\RelatorioDiarioATIWindowsServer-$hoje.html -Destination $pathcopy -Force |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment