Powershell - Daily Health Check
Hi all,
I have a number of different w8k and w12k servers in different sites and I wanted create a daily health check to check services are up. For instance I can write a ps script to check run at 6am daily and check various services on a windows server and then
generate a html report and mail it to a distribution list. However on some of my servers I only have one service that needs to be checked I wanted a was to check the services and collate all the reports into one place and output just one html report?
So for example could I output the results to a text file, run an ftp job to send the result to a central location and then run a ps to scrap all the results and output to html, or could the text files be scrapped from an email, this method makes better sense
for me as some of these servers will have ACLs between then and getting send via smtp will be easier then ftp.
Would like to know if anyone has any ideas or experience with doing something like this?
Are the servers on the same domain? If so use "Enter-PSSession" or if your just checking if a service is running use the "-Computer" switch to execute it on the remote server.
You could also use WMI "Get-WMIObject"
Using the above methods will let you run it from a central location.
My suggestion for performing your health checks is to define in a csv file: Server Name, IP, Heath Check Level
So have an initial Ping for the host name, if that fails then use the IP as DNS might have an issue (record results into file)
Heath Ckeck level determines if your just checking full server health or just checking for a specif service is running (ie Full, Service, ect... you define it for your requirements)
I would use WMI as there could be different versions of powershell installed and take the compatibility issues away when writing the script.
Below is a good starting script for you to use where it queries via WMI and generates a html report that is emailed out.
https://gallery.technet.microsoft.com/scriptcenter/Powershell-Script-to-Get-78687c5e
Cheers,
Martin
Blog:
http://sustaslog.wordpress.com
LinkedIn:
Note: Posts are provided “AS IS” without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.
Similar Messages
-
Exchange 2013 Daily Health Check Script
Hi All,
I recently migrated from Exchange 2010 to Exchange 2013. Prior to the migration the daily health check was being used daily to send my team and I the HTML report.
I have downloaded the new v1.07 script and followed the same rules and settings I used for Exchange 2010 when setting up the script.
The script only runs now via Exchange shell and does not send the HTML report and I am unable to run the script via a batch file that called the ./ps1 file in a windows command prompt and am also unable to as a result, use the task scheduler to schedule
this task.
I am desperately in need of getting this morning report as its been so useful, I cant do without it now.
Any advise would be greatly appreciated.
Thanks so much
AltonSo, could you please check this link, it provide the solution to check the daily health of exchange 2013 :
http://exchangeserverpro.com/troubleshooting-exchange-server-2013-with-test-cmdlets/ -
I'm a simple user. Here is what I get. --- Daily Health Check "Could not read the language folder for the Installation Monitor" 1) Is this serious? 2) How do I fix it? Thanks.
>
> please
thanksAs you said,
query you wrote above would give details about users sessions wait time and state,
and that info by itself would inform you about just one small piece of the overall database health state,
so by that query alone you can't be 100% sure that your db is not sick.
I guess you should also at least check: backup status,datafiles space availability,alert.log and istener.log for errors ,db objects status, oracle memory structures utilization...
and so on... + any similar checks or those ones specific to your company needs..
AWR report is mostly self-explanatory and ways how to analyze it was already many times eplained on www,you should search for those instructions
and come here with more concrete question regarding the AWR report. -
Hi Gurus,
We have huge production setup, so its high time for us to come up with detailed 'Daily XI systems health check-out' and have pro-active monitoring these systems.
So requesting you to, please help me with items/areas those needs to be checked at regular intervals for daily monitoring....a good reference doc may help me great.
Thanks all in advance.
Regards
SekharSekhar,
There are few checks that needs to be carried out daily and weekly as recommended by SAP. Please check this SAP note : Note 884865 - PI/XI Admin Check and also this document where they have the steps:
https://websmp110.sap-ag.de/~sapidb/012006153200000666252007E/Admin_Check_Version2.pdf
Regards,
---Satish -
Responsibility and health check
hi friends
just need some help to prepare good document as my management insited
i am only the dba working for two node rac
windows
10.2.0.4
asm
here if any issue arrives i am only the person to handle,so my management decided to list out all the activities.
from i just what are daily health check or responsibilities of sys admin,os level admin,asm leve...............storage dept .............architect leve
as i have updated database level activities
can you please give me list of activities they should handle in this enivronment(sys admin,os level admin,asm leve...............storage dept .............architect leve)
thanks for your help and support
cheersThese are the tasks for the oralce dba. For the other related fields , either check their doc guide or ask the people who work in that domain,
http://download.oracle.com/docs/cd/E11882_01/server.112/e17120/dba002.htm#i1006205
Aman.... -
Hello,
I am very interested to learn and find out what your daily health checks consists of.
Thank youHow do I ask a question on the forums?
SQL and PL/SQL FAQ -
Powershell script for Exchange Server 2010 health check
People,
Can anyone here please share the Powershell to check the Exchange Server health and functionality after patching and Service Pack update?
I need to test multiple servers in my AD environment.
Thanks
/* Server Support Specialist */Hi,
In Exchange 2010, you can use the Test-ServiceHealth cmdlet to test whether all the Microsoft Windows services that Exchange requires on a server have started.
A related article about this command.
https://technet.microsoft.com/en-us/library/aa998852(v=exchg.150).aspx
You can also use the EXBPA tool to do Exchange server health check. You can look at the blog below.
http://blogs.msdn.com/b/douggowans/archive/2007/06/06/run-your-own-exchange-server-health-check-the-tools.aspx
Hope this is helpful to you.
Best regards,
If you have feedback for TechNet Subscriber Support, contact
[email protected]
Belinda Ma
TechNet Community Support -
Health Check in Exchange 2007 Scripting
Hi All,
I have been looking around for scripts which would help me perform regularised health checks in my enviornment. After lot of googling i was able to get a script which would meet my requirements. However i have a few challenges involved in extracting some
more information:
1. Mailbox Store Size, Free Diskspace percentage for mailbox servers
2. Remote Mail flow Tests & Mailflow test to every exchange 2007 mailbox servers in org.
3. Automating Email of collected data (in HTML) to Administrator.
4. Executing the script Automatically without triggering it from Exchange Management Shell.
Script Below
param( [string] $auditlist)
Function Get-CustomHTML ($Header){
$Report = @"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html><head><title>$($Header)</title>
<META http-equiv=Content-Type content='text/html; charset=windows-1252'>
<meta name="save" content="history">
<style type="text/css">
DIV .expando {DISPLAY: block; FONT-WEIGHT: normal; FONT-SIZE: 8pt; RIGHT: 8px; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TEXT-DECORATION: underline}
TABLE {TABLE-LAYOUT: fixed; FONT-SIZE: 100%; WIDTH: 100%}
*{margin:0}
.dspcont { display:none; BORDER-RIGHT: #B1BABF 1px solid; BORDER-TOP: #B1BABF 1px solid; PADDING-LEFT: 16px; FONT-SIZE: 8pt;MARGIN-BOTTOM: -1px; PADDING-BOTTOM: 5px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; WIDTH: 95%; COLOR: #000000; MARGIN-RIGHT:
0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; BACKGROUND-COLOR: #f9f9f9}
.filler {BORDER-RIGHT: medium none; BORDER-TOP: medium none; DISPLAY: block; BACKGROUND: none transparent scroll repeat 0% 0%; MARGIN-BOTTOM: -1px; FONT: 100%/8px Tahoma; MARGIN-LEFT: 43px; BORDER-LEFT: medium none; COLOR: #ffffff; MARGIN-RIGHT: 0px; PADDING-TOP:
4px; BORDER-BOTTOM: medium none; POSITION: relative}
.save{behavior:url(#default#savehistory);}
.dspcont1{ display:none}
a.dsphead0 {BORDER-RIGHT: #B1BABF 1px solid; PADDING-RIGHT: 5em; BORDER-TOP: #B1BABF 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN-BOTTOM: -1px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; CURSOR: hand; COLOR:
#FFFFFF; MARGIN-RIGHT: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; HEIGHT: 2.25em; WIDTH: 95%; BACKGROUND-COLOR: #CC0000}
a.dsphead1 {BORDER-RIGHT: #B1BABF 1px solid; PADDING-RIGHT: 5em; BORDER-TOP: #B1BABF 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN-BOTTOM: -1px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; CURSOR: hand; COLOR:
#ffffff; MARGIN-RIGHT: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; HEIGHT: 2.25em; WIDTH: 95%; BACKGROUND-COLOR: #7BA7C7}
a.dsphead2 {BORDER-RIGHT: #B1BABF 1px solid; PADDING-RIGHT: 5em; BORDER-TOP: #B1BABF 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN-BOTTOM: -1px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; CURSOR: hand; COLOR:
#ffffff; MARGIN-RIGHT: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; HEIGHT: 2.25em; WIDTH: 95%; BACKGROUND-COLOR: #7BA7C7}
a.dsphead1 span.dspchar{font-family:monospace;font-weight:normal;}
td {VERTICAL-ALIGN: TOP; FONT-FAMILY: Tahoma}
th {VERTICAL-ALIGN: TOP; COLOR: #CC0000; TEXT-ALIGN: left}
BODY {margin-left: 4pt}
BODY {margin-right: 4pt}
BODY {margin-top: 6pt}
</style>
<script type="text/javascript">
function dsp(loc){
if(document.getElementById){
var foc=loc.firstChild;
foc=loc.firstChild.innerHTML?
loc.firstChild:
loc.firstChild.nextSibling;
foc.innerHTML=foc.innerHTML=='hide'?'show':'hide';
foc=loc.parentNode.nextSibling.style?
loc.parentNode.nextSibling:
loc.parentNode.nextSibling.nextSibling;
foc.style.display=foc.style.display=='block'?'none':'block';}}
if(!document.getElementById)
document.write('<style type="text/css">\n'+'.dspcont{display:block;}\n'+ '</style>');
</script>
</head>
<body>
<b><font face="Arial" size="5">$($Header)</font></b><hr size="8" color="#CC0000">
<font face="Arial" size="1"><b>Version 1 |M & C | <A HREF='http://mail.exchange.com'>mail.exchange.com</A></b></font><br>
<font face="Arial" size="1">Report created on $(Get-Date)</font>
<div class="filler"></div>
<div class="filler"></div>
<div class="filler"></div>
<div class="save">
Return $Report
Function Get-CustomHeader0 ($Title){
$Report = @"
<div class="dspcont0">
<h1><a href="javascript:void(0)" class="dsphead0" onclick="dsp(this)">
<span class="expando">show</span>$($Title)</a></h1>
<div class="dspcont0">
Return $Report
Function Get-CustomHeader ($Num, $Title){
$Report = @"
<h2><a href="javascript:void(0)" class="dsphead$($Num)" onclick="dsp(this)">
<span class="expando">show</span>$($Title)</a></h2>
<div class="dspcont">
Return $Report
Function Get-CustomHeaderClose{
$Report = @"
</DIV>
<div class="filler"></div>
Return $Report
Function Get-CustomHeader0Close{
$Report = @"
</DIV>
<div class="filler"></div>
Return $Report
Function Get-CustomHTMLClose{
$Report = @"
</div>
</body>
</html>
Return $Report
Function Get-HTMLTable{
param([array]$Content)
$HTMLTable = $Content | ConvertTo-Html
$HTMLTable = $HTMLTable -replace '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">', ""
$HTMLTable = $HTMLTable -replace '<html xmlns="http://www.w3.org/1999/xhtml">', ""
$HTMLTable = $HTMLTable -replace '<head>', ""
$HTMLTable = $HTMLTable -replace '<title>HTML TABLE</title>', ""
$HTMLTable = $HTMLTable -replace '<', "<"
$HTMLTable = $HTMLTable -replace '>', ">"
$HTMLTable = $HTMLTable -replace '</head><body>', ""
$HTMLTable = $HTMLTable -replace '</body></html>', ""
Return $HTMLTable
Function Get-HTMLLink ($activeURL){
$Report = @"
<a href=$activeURL>$activeURL</a>
Return $Report
Function Get-Ink ([String]$inData){
[String]$inclPercentage = @(35..100)
$positive = ($inclPercentage, 'Success', 'Ready', 'Running', 'OK', 'True', 'Information')
If ($positive -match $inData)
$Report = @"
<font color='#009900'>$inData</font>
Else
$Report = @"
<font color='#FF0000'>$inData</font>
Return $Report
Function Get-HTMLBasic ($Detail){
$Report = @"
<TABLE>
<tr>
<td width='75%'>$($Detail)</td>
</tr>
</TABLE>
Return $Report
Function Get-HTMLDetail ($Heading, $Detail){
$Report = @"
<TABLE>
<tr>
<th width='25%'><b>$Heading</b></font></th>
<td width='75%'>$($Detail)</td>
</tr>
</TABLE>
Return $Report
$input | foreach {$targets += @($_)}
If ((Test-Path variable:\targets) -eq $True){
Write-Host "Server list input detected on pipeline" -ForegroundColor Yellow
Else{
if ($auditlist -eq ""){
Write-Host "No server list specified, getting all Exchange 2007 servers" -ForegroundColor Yellow
$targets = Get-ExchangeServer | Where-Object {$_.IsExchange2007OrLater -eq $True}
else
if ((Test-Path $auditlist) -eq $false)
Write-Host "Invalid server list specified: $auditlist" -ForegroundColor DarkRed
exit
else
Write-Host "Using Audit list: $auditlist" -ForegroundColor Cyan
$Targets = Get-Content $auditlist
$now = Get-Date
#Custom Expressions
$latencyMS = @{Name="Latency(MS)";expression={[Math]::Round(([TimeSpan] $_.Latency).TotalMilliSeconds)}}
$MessageLatencyTime = @{Name="MessageLatencyTime";expression={[Math]::Round(([TimeSpan] $_.Latency).TotalMilliSeconds)}}
$hotLink = @{Name="URL";expression={Get-HTMLLink ($_.URL)}}
$colourResult = @{Name="Result";expression={Get-Ink ($_.Result)}}
$colourStatus = @{Name="Status";expression={Get-Ink ($_.Status)}}
$colourType = @{Name="Status";expression={Get-Ink ($_.Type)}}
$newResult = @{Name="Result";expression={If ($_.Result.ToString() -ne 'Success'){Get-Ink ('Failure')} Else {Get-Ink ('Success') }}}
$fullReport = Get-CustomHTML "Exchange 2007 "
$fullReport += Get-CustomHTMLClose
Foreach ($Target in $Targets){
Write-Host "Collating Detail for $Target" -ForegroundColor Yellow
Write-Host "..getting basic computer configuration"
$ComputerSystem = Get-WmiObject -computername $Target Win32_ComputerSystem
switch ($ComputerSystem.DomainRole){
0 { $ComputerRole = "Standalone Workstation" }
1 { $ComputerRole = "Member Workstation" }
2 { $ComputerRole = "Standalone Server" }
3 { $ComputerRole = "Member Server" }
4 { $ComputerRole = "Domain Controller" }
5 { $ComputerRole = "Domain Controller" }
default { $ComputerRole = "Information not available" }
$OperatingSystems = Get-WmiObject -computername $Target Win32_OperatingSystem
$TimeZone = Get-WmiObject -computername $Target Win32_Timezone
$Keyboards = Get-WmiObject -computername $Target Win32_Keyboard
$SchedTasks = Get-WmiObject -computername $Target Win32_ScheduledJob
$BootINI = $OperatingSystems.SystemDrive + "boot.ini"
$RecoveryOptions = Get-WmiObject -computername $Target Win32_OSRecoveryConfiguration
$exServer = Get-ExchangeServer | where {$_.Name -eq "$Target"}
$exVersion = "Version " + $exServer.AdminDisplayVersion.Major + "." + $exServer.AdminDisplayVersion.Minor + " (Build " + $exServer.AdminDisplayVersion.Build + "." + $exServer.AdminDisplayVersion.Revision + ")"
switch ($ComputerRole){
"Member Workstation" { $CompType = "Computer Domain"; break }
"Domain Controller" { $CompType = "Computer Domain"; break }
"Member Server" { $CompType = "Computer Domain"; break }
default { $CompType = "Computer Workgroup"; break }
$LBTime=$OperatingSystems.ConvertToDateTime($OperatingSystems.Lastbootuptime)
$MyReport += Get-CustomHeader0 "$Target - Role(s): $($exServer.ServerRole)"
$MyReport += Get-CustomHeader "2" "Basic Server Information"
$MyReport += Get-HTMLDetail "Computer Name" ($ComputerSystem.Name)
$MyReport += Get-HTMLDetail "Computer Role" ($ComputerRole)
$MyReport += Get-HTMLDetail "Exchange Role(s)" ($exServer.ServerRole)
$MyReport += Get-HTMLDetail "Last System Boot" ($LBTime)
$MyReport += Get-CustomHeaderClose
Write-Host "..getting logical disk configuration"
$Disks = Get-WmiObject -ComputerName $Target Win32_LogicalDisk
$MyReport += Get-CustomHeader "2" "Logical Disk Configuration"
$LogicalDrives = @()
Foreach ($LDrive in ($Disks | Where {$_.DriveType -eq 3})){
$Details = "" | Select "Drive Letter", Label, "File System", "Disk Size (GB)", "Disk Free Space", "% Free Space"
$Details."Drive Letter" = $LDrive.DeviceID
$Details.Label = $LDrive.VolumeName
$Details."File System" = $LDrive.FileSystem
$Details."Disk Size (GB)" = [math]::round(($LDrive.size / 1GB))
$Details."Disk Free Space" = [math]::round(($LDrive.FreeSpace / 1GB))
$Details."% Free Space" = Get-Ink ([Math]::Round(($LDrive.FreeSpace /1GB) / ($LDrive.Size / 1GB) * 100))
$LogicalDrives += $Details
$MyReport += Get-HTMLTable ($LogicalDrives)
$MyReport += Get-CustomHeaderClose
if ($exServer.ServerRole -like "*ClientAccess*")
{$MyReport += Get-CustomHeader "2" "OWA Connectivity"
Write-Host "..performing OWA connectivity test"
$colOWAResults = Test-OwaConnectivity -ClientAccessServer $Target
$MyReport += Get-HTMLTable ($colOWAResults | select MailboxServer, $hotLink, Scenario, $colourResult, $latencyMS, Error)
$MyReport += Get-CustomHeaderClose
Write-Host "..getting queue details"
if ($exServer.ServerRole -like "*HubTransport*")
$MyReport += Get-CustomHeader "2" "Queue Information"
$colQs = Get-Queue -server $Target
$MyReport += Get-HTMLTable ($colQs | Select-Object NextHopDomain, $colourStatus, MessageCount, NextRetryTime)
$MyReport += Get-CustomHeaderClose
Write-Host "..getting mailbox database information"
$spaceLog=[System.Diagnostics.EventLog]::GetEventLogs($target) | where {($_.LogDisplayName -eq "Application")}
$db = @{Name="database";Expression={$_.ReplacementStrings[1]}}
$freeMB = @{Name="MB";Expression={[int]$_.ReplacementStrings[0]}}
$whiteSpace = $spaceLog.entries | where {($_.TimeWritten -ge $now.AddDays(-1))} | where {($_.EventID -eq "1221")} | select $db,$freeMB
$ws = @{Name="White Space";expression={}}
if ($exServer.ServerRole -like "*Mailbox*")
$MyReport += Get-CustomHeader "2" "Mailbox Stores"
$colMailboxStores = Get-MailboxDatabase -Server $Target -Status | Sort-Object Name
$storeTable = @()
Foreach ($objMailboxStore in $colMailboxStores)
[string]$totalUsers = (get-mailbox -database $objMailboxStore).count
[string]$empty = $totalUsers.Length -eq 0
if ($empty -eq 'True')
[string]$totalUsers = "0"
$storeDetails = "" | Select Name, Mounted, "Total Users", "White Space", LastFullBackup
$storeDetails.Name = $objMailboxStore.Name
$storeDetails.Mounted = Get-Ink ($objMailboxStore.Mounted)
$storeDetails."Total Users" = $totalUsers
$storeDetails."White Space" = (($whitespace | where {$_.database -match $objMailboxStore.Name} | select -last 1).mb)
$storeDetails.LastFullBackup = $objMailboxStore.LastFullBackup
$storeTable += $storeDetails
$MyReport += Get-HTMLTable ($storeTable)
$MyReport += Get-CustomHeaderClose
$MyReport += Get-CustomHeader "2" "MAPI Connectivity"
Write-Host "..performing MAPI connectivity test"
$colMAPIResults = Test-MAPIConnectivity -Server $Target
$MyReport += Get-HTMLTable ($colMAPIResults | select Database, $newResult, $latencyMS, Error)
$MyReport += Get-CustomHeaderClose
$MyReport += Get-CustomHeader "2" "Mailflow Test"
Write-Host "..performing Mailflow test"
$colMailflowResults = Test-Mailflow -Server $Target
$MyReport += Get-HTMLTable ($colMailflowResults | select TestMailflowResult, $MessageLatencyTime)
$MyReport += Get-CustomHeaderClose
Write-Host "..getting Exchange services"
$ListOfServices = (gwmi -computer $Target -query "select * from win32_service where Name like 'MSExchange%' or Name like 'IIS%' or Name like 'SMTP%' or Name like 'POP%' or Name like 'W3SVC%'")
$MyReport += Get-CustomHeader "2" "Exchange Services"
$Services = @()
Foreach ($Service in $ListOfServices){
$Details = "" | Select Name,Account,"Start Mode",State,"Expected State"
$Details.Name = $Service.Caption
$Details.Account = $Service.Startname
$Details."Start Mode" = $Service.StartMode
If ($Service.StartMode -eq "Auto")
if ($Service.State -eq "Stopped")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("Unexpected")
If ($Service.StartMode -eq "Auto")
if ($Service.State -eq "Running")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("OK")
If ($Service.StartMode -eq "Disabled")
If ($Service.State -eq "Running")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("Unexpected")
If ($Service.StartMode -eq "Disabled")
if ($Service.State -eq "Stopped")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("OK")
If ($Service.StartMode -eq "Manual")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("OK")
If ($Service.State -eq "Paused")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("OK")
$Services += $Details
$MyReport += Get-HTMLTable ($Services)
$MyReport += Get-CustomHeaderClose
$eventLogs=[System.Diagnostics.EventLog]::GetEventLogs($Target) | where {($_.LogDisplayName -eq "Application") -OR ($_.LogDisplayName -eq "System")}
$warningEvents = @()
$errorEvents = @()
$LogSettings = @()
$MyReport += Get-CustomHTMLClose
$fullReport += $MyReport
$MyReport = $null
$Date = Get-Date
$Filename = ".\" + "Exchange_Health" + "_" + $date.Hour + $date.Minute + "_" + $Date.Day + "-" + $Date.Month + "-" + $Date.Year + ".htm"
$fullReport | out-file -encoding ASCII -filepath $Filename
Write "Audit saved as $Filename"
Invoke-Item $Filenameplease refer to my scripts below, it should get you started.
http://www.myexchangeworld.com/2010/03/powershell-disk-space-html-email-report/
http://www.myexchangeworld.com/2010/07/powershell-script-to-monitor-exchange-server-2010-services-email-report/
you can customsise this to your needs and add relevant information.
cheers
thiyagu
Thiyagu | MCTS/MCITP - Exchange 2007 | MCSE 2003[Messaging] | http://www.myExchangeWorld.com. This posting is provided "AS IS" with no warranties, and confers no rights. -
[Resolved][SCE 2010] Daily Health Report
Hello everybody!
I'm working in the IT support. And it turns that we cannot found the origin of one problem.
I explain myself:
We have many servers. For the exchange for System Center Essentials2010 and others.
But since the beginning of October the Daily Health Report is not send automatically.
I have tried to follow all the steps to configure the DHR (Daily Health Report) but it seems not working yet! When I press the bottom to send the DHR it works (manually)! But it is not working automatically.
Does somebody have any idea?So, could you please check this link, it provide the solution to check the daily health of exchange 2013 :
http://exchangeserverpro.com/troubleshooting-exchange-server-2013-with-test-cmdlets/ -
Hi all,
Some enquires regarding database health check. I did some research regarding health check, got overwhelmed by the information available out there.
Currently I don't have any report on hand, but currently working and starting on one. This report serves as a report for reference, to understand if there's any database performance issue, and as a report for management.
Wish to check with you folks, what are the typical things that I can look at on a daily basis to understand my database health status, eg. Buffer Hitrate, database I/O etc, especially those that may/will contribute to impact on the database performance. Or is there any good reference link whereby I can do some readup regarding such a health check?
Thanks in advance for any input.
EugeneHi Eugene,
Well that's a pretty open question and I guess you will get a lot of replies which I look forward to monitoring as there should be some very interesting ones there.
Anyway, let me just open with one point that I have found very useful in the past. As regards Database Performance , you can look as much as you like at the statistics and a great deal of discretion is required in interpreting them but the real test for me of how well a database is performing is in terms of the user (or application) perception. Are the responses from the database good enough to meet the users expectations. Check the average response time for example and set guidellines for what is acceptable, very good response , very bad response etc.
I use this as a guideline so then once the database is perfoming in the sense that the user is satisfied (or better still happy with the performance) we can gather the statistics (from Oracle 10g onwards there are lots of tools built in like ADDM and AWR for gathering and storing the database statistics) and create baselines. Once we have baselines for a normally performing system, as soon as problems are reported we can run off a diagnostic tool like ADDM for that period , compare it against the baseline and look for the striking differences. From there we can start an analysis of individual numbers, buffer hit ratios etc. to delve further.
Hope this helps , I am sure lots of other people will chip in to this
Regards -
DPM 2007/2010 Health Check Tools
Hi there,
I've had a look through the existing forum threads, but am unable to find an answer to my query.
I am looking to find a range of DPM health check tools, or Powershell Scripts, that would help me perform a Health Check on a 2007 environment, with a view to an eventual upgrade path to 2010/2012
I am hoping to avoid analysing each event ID and every backup operation in order to make a report to management.
Many thanks in advance
RoryHi,
This is the only DPM Health Check script available. Here is the link:
https://gallery.technet.microsoft.com/DPM-Health-Check-9628e68f
My Blog | www.buchatech.com | www.systemcenterportal.com
If you found this post helpful, please give it a "Helpful" vote. If it answered your question, remember to mark it as an "Answer". This posting is provided "AS IS" with no warranties and confers no rights! Always test ANY suggestion
in a test environment before implementing! -
Hi All,
I have System center DPM 2012 which takes backup of Exchange 2010, File server, VM's and system state for physical servers. I want to perform health check on DPM. Kindly recommend any tool or report format and how to perform health check ?The only thing i know is the Configuration Analyzer from MS: http://technet.microsoft.com/en-us/library/jj992580.aspx
All other things can be done with PowerShell Scripts:
Browse Gallery: http://gallery.technet.microsoft.com/site/search?f%5B0%5D.Type=RootCategory&f%5B0%5D.Value=SystemCenter&f%5B0%5D.Text=System%20Center&f%5B1%5D.Type=SubCategory&f%5B1%5D.Value=protection&f%5B1%5D.Text=Data%20Protection%20Manager
Or: http://www.techguy.at/scdpm/
Seidl Michael | http://www.techguy.at |
twitter.com/techguyat | facebook.com/techguyat -
SAP Functional Health check (or) audit
Hai,
We want to do daily Audit for all Modules in ECC 6. Is there any check points available? Because like VKOA Settings(Pooled table )datas are missing at the time of new settings. Please tell .
Regards,
J.TamilarasiDigging up an old question.
The exercise was completed using my current knowledge and some improvised output tailored to the customer's need, it was not necessarily a health check audit from a purely technical perspective. It also involved the customer acceptability and usage analysis of the system. Because i strongly believe that a comprehensive system design is only as good as its user.
Anyways for anyone looking for the actual document mentioned in the earlier posts and not to be found anywhere, here it is attached, which is a comprehensive checklists of steps, both inside SAP and otherwise which are to be considered when planning a system audit. Although old, it might provide a good reference checklist of items to be done.
I have renamed the doc file, to let it be more meaningful in case it need to refer to it.
http://1drv.ms/1wIeDbR
Hope you find it useful. -
DirectAccess Server Health Check URL
I am looking at using an external hardware load-balancer with a DirectAccess 2012 R2 implementation. Besides an ICMP echo-reply, does anyone know of a specific URL I could plug in as a health check to determine the DA server availability.
Thanks...Hi,
A subject I'm currently working on. IPHTTPS, it's only TCP443, it does not proove that DirectAccess works. Because i wanted to avoid to write complex check rules, I choose to rely on Powershell.
A simple Get-RemoteAccessHealth -verbose | Where {$_.HealthState -ne "Disabled"} return status for all involved components (whatever your configuration). Each component can be OK or KO. I have a script that parse this result and write a simple
text file with OK or KO. This file is designed to be consumed by the HLB Appliance throught IIS (available on the DirectAccess Gateway). With such approach, monitoring DirectAccess health is becoming easy.
So your HLB applicance can detect if one of your DirectAccess Gateway is not operational (eg Failing OTP or expired certificate) and remove it from your pools.
BenoitS - Simple by Design http://danstoncloud.com/blogs/simplebydesign/default.aspx -
How can I support a health check, from a load balancer?
My company has load balancers which use health checks to determine if the end point is available for client traffic. The basic health check is a tcp ping, and will tell you if the device is on the network. The next level of health check is an http request. This request, and the response are static, you can’t create your own version of the request and response. The standard request is this:
http://host:port/healthcheck/hc.html
The standard response is this:
“The server is available”
I want to use the load balancer as part of my total deployment. The problem is that I am not seeing how to support this health check request and response in the MDEX engine. What I see is this request
http://host:port/admin?op=ping
Will return this response
dgraph <host>: <port> responding at <day month year time>
It is nice that there is a built in ping, but I am not able to make use of it. I am new to Endeca and still poking around. The dgraph process listens on a port set up in <…>/config/script/AppContext.xml
<dgraph id="Dgraph1" host-id="MDEXHost" port="3281">
<properties>
<property name="restartGroup" value="A" />
<property name="updateGroup" value="a" />
</properties>
<log-dir>./logs/dgraphs/Dgraph1</log-dir>
<input-dir>./data/dgraphs/Dgraph1/dgraph_input</input-dir>
<update-dir>./data/dgraphs/Dgraph1/dgraph_input/updates</update-dir>
</dgraph>
(I am not using the default port, as I only have an instance on a shared server and have to worry about port clashing. But that is a different thread.)
In a standard tc Server install I can support this health check by doing this:
* Create a directory named “healthcheck”, in the “webapps” directory.
* Place a file name “hc.html” in that directory, which contains “The server is available”
The one hack which comes to mind is to write a servlet which would be able to be a smart proxy for the load balancer health check. It would pass along any regular traffic to the MDEX engine. But if the request was a health check it would send “admin?op=ping” to the MDEX engine, and for a good response from the engine, create and pass back the correct response to the load balancer.
Ideas, comments, flames, …
ThanksHi, we are using following String to test the MDEX ping response but we get the invalid version formation on dgraph.log -
following is on F5
GET /admin?op=ping HTTP/1.1/r/nHost:myhost.endeca.com:19000/r/nConnection:close/r/n/r/n
Following gets logged on Dgraph.log
WARN 09/05/12 05:30:03.799 UTC (1346823003799) DGRAPH {dgraph} Invalid version format in 'HTTP/1.1/r/nHost:myhost.endeca.com:19000/r/nConnection:close/r/n/r/n'
Please let me know - if you have any suggestions to solve this issue.
I know that it works from browser and wget from unix with following commands.
wget http://myhost.endeca.com:19000/admin?op=ping - from unix command line
from browser:
http://myhost.endeca.com:19000/admin?op=ping
Thanks,
Ram
Maybe you are looking for
-
PlayOptions playMode="pause" How can you get a web show to autostart?
LR3.2 I created several Web Albums and want the albums to start immediately without any user interaction. I'm assuming that under resources->styles in the style.xml one would use Options playMode which has a default setting of pause, what are the oth
-
How do you see your Ipod track list in Itunes 7???
When you connect your Ipod to Itunes 7 all it shows is a summary page and not the track list. How to you see the tracks on your Ipod manually???
-
Focus vertical scroll bar in report div
Hi everyone, I just want to know if the issue has been resolved by someone : I have a report within a div and a vertical scrolling bar to scroll the rows. When I click on a row of the report the row is highlighted. Now, if the clicked row is at the e
-
Webcenter PS5 - 11.1.1.6.0 Patchset Released
Hi All , Webcenter PS5 - 11.1.1.6.0 Patchset MLR 10 has been released on MyOracleSupport portal . Patch 15922432: WCC 11.1.1.6.0 BUNDLE (MLR 10)JAN 17 2012 https://support.oracle.com/epmos/faces/PatchDetail?patchId=15922432 This would include patches
-
Any help out there on how to do the upgrade? Went thorugh tutorial, but cannot get to the prompt for the download. Message was edited by: firstpink