Skip to content

Instantly share code, notes, and snippets.

@richardsonlima
Last active February 23, 2016 19:58
Show Gist options
  • Save richardsonlima/fadfb91d524aac1bfb21 to your computer and use it in GitHub Desktop.
Save richardsonlima/fadfb91d524aac1bfb21 to your computer and use it in GitHub Desktop.
# 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