Skip to content

Instantly share code, notes, and snippets.

@sean-m
Last active September 28, 2018 18:55
Show Gist options
  • Save sean-m/b0c5eef43918dd311f7c63a573fbe23e to your computer and use it in GitHub Desktop.
Save sean-m/b0c5eef43918dd311f7c63a573fbe23e to your computer and use it in GitHub Desktop.
Simple HTA app providing a perfmon dashboard for FIM/MIM/AAD Sync management agents. Helps with troubleshooting sync performance issues.
<html>
<head>
<!-- Note: needs to be run as admin. Use cmd or pshell to bootstrap or compile to exe with vbsedit. -->
<title>MIM Sync Perf Counters</title>
<HTA:APPLICATION
APPLICATIONNAME="MIM Sync Perf Counters"
ID="MyHTMLapplication"
VERSION="1.0"/>
</head>
<SCRIPT LANGUAGE="VBScript">
Sub Monitor_OnCounterAdded(index)
On Error Resume Next
Monitor.Counters.Item(1).Width = 8
End Sub
</Script>
<OBJECT ID="Monitor" WIDTH="100%" HEIGHT="100%"
CLASSID="CLSID:C4D2D8E0-D1DD-11CE-940F-008029004347">
<PARAM NAME="_Version" VALUE="458755"/>
<PARAM NAME="_ExtentX" VALUE="34581"/>
<PARAM NAME="_ExtentY" VALUE="18336"/>
<PARAM NAME="DisplayType" VALUE="1"/>
<PARAM NAME="ReportValueType" VALUE="0"/>
<PARAM NAME="MaximumScale" VALUE="150"/>
<PARAM NAME="MinimumScale" VALUE="0"/>
<PARAM NAME="ShowLegend" VALUE="1"/>
<PARAM NAME="ShowToolbar" VALUE="1"/>
<PARAM NAME="ShowScaleLabels" VALUE="1"/>
<PARAM NAME="ShowHorizontalGrid" VALUE="0"/>
<PARAM NAME="ShowVerticalGrid" VALUE="0"/>
<PARAM NAME="ShowValueBar" VALUE="1"/>
<PARAM NAME="ManualUpdate" VALUE="0"/>
<PARAM NAME="Highlight" VALUE="1"/>
<PARAM NAME="ReadOnly" VALUE="0"/>
<PARAM NAME="MonitorDuplicateInstances" VALUE="1"/>
<PARAM NAME="UpdateInterval" VALUE="1"/>
<PARAM NAME="DisplayFilter" VALUE="1"/>
<PARAM NAME="BackColorCtl" VALUE="-2147483633"/>
<PARAM NAME="ForeColor" VALUE="-1"/>
<PARAM NAME="BackColor" VALUE="-1"/>
<PARAM NAME="GridColor" VALUE="8421504"/>
<PARAM NAME="TimeBarColor" VALUE="255"/>
<PARAM NAME="BorderStyle" VALUE="0"/>
<PARAM NAME="TimeAxisLabels" VALUE="1"/>
<PARAM NAME="Tooltip" VALUE="1"/>
<PARAM NAME="NextCounterColor" VALUE="7"/>
<PARAM NAME="NextCounterWidth" VALUE="0"/>
<PARAM NAME="NextCounterLineStyle" VALUE="0"/>
<PARAM NAME="MaximumSamples" VALUE="100"/>
<PARAM NAME="GraphTitle" VALUE=""/>
<PARAM NAME="YAxisLabel" VALUE=""/>
<PARAM NAME="DigitGrouping" VALUE="1"/>
<PARAM NAME="WrapTimeLine" VALUE="1"/>
<PARAM NAME="DataSourceType" VALUE="1"/>
<PARAM NAME="SqlDsnName" VALUE=""/>
<PARAM NAME="SqlLogSetName" VALUE=""/>
<PARAM NAME="LogFileCount" VALUE="0"/>
<PARAM NAME="AmbientFont" VALUE="-1"/>
<PARAM NAME="LegendColumnWidths" VALUE=" 0.083398285268901 0.083398285268901 0.208106001558846 0.103663289166017 0.103663289166017 0.208106001558846 0.166796570537802"/>
<PARAM NAME="LegendSortDirection" VALUE="0"/>
<PARAM NAME="LegendSortColumn" VALUE="-2"/>
<PARAM NAME="CounterCount" VALUE="11"/>
<PARAM NAME="MaximumSamples" VALUE="100"/>
<PARAM NAME="SampleCount" VALUE="100"/>
<PARAM NAME="SampleIndex" VALUE="92"/>
<PARAM NAME="StepNumber" VALUE="91"/>
<PARAM NAME="TimeStamps" VALUE="131727656491730000 131727656501730000 131727656511730000 131727656521730000 131727656531730000 131727656541730000 131727656551730000 131727656561730000 131727656571730000 131727656581730000 131727656591730000 131727656601730000 131727656611730000 131727656621730000 131727656631730000 131727656641730000 131727656651730000 131727656661730000 131727656671730000 131727656681730000 131727656691730000 131727656701730000 131727656711730000 131727656721730000 131727656731730000 131727656741730000 131727656751730000 131727656761730000 131727656771730000 131727656781730000 131727656791730000 131727656801730000 131727656811730000 131727656821730000 131727656831730000 131727656841730000 131727656851730000 131727656861730000 131727656871730000 131727656881730000 131727656891730000 131727656901730000 131727656911730000 131727656921730000 131727656931730000 131727656941730000 131727656951730000 131727656961730000 131727656971730000 131727656981730000 131727656991730000 131727657001730000 131727657011730000 131727657021730000 131727657031730000 131727657041730000 131727657051730000 131727657061730000 131727657071730000 131727657081730000 131727657091730000 131727657101730000 131727657111730000 131727657121730000 131727657131730000 131727657141730000 131727657151730000 131727657161730000 131727657171730000 131727657181730000 131727657191730000 131727657201730000 131727657211730000 131727657221730000 131727657231730000 131727657241730000 131727657251730000 131727657261730000 131727657271730000 131727657281730000 131727657291730000 131727657301730000 131727657311730000 131727657321730000 131727657331730000 131727657341730000 131727657351730000 131727657361730000 131727657371730000 131727657381730000 131727657391730000 131727657401730000 131727656411730000 131727656421730000 131727656431730000 131727656441730000 131727656451730000 131727656461730000 131727656471730000 131727656481730000"/>
<PARAM NAME="Counter00010.Path" VALUE="\Processor Information(_Total)\% Processor Time"/>
<PARAM NAME="Counter00010.Color" VALUE="255"/>
<PARAM NAME="Counter00010.Width" VALUE="1"/>
<PARAM NAME="Counter00010.LineStyle" VALUE="0"/>
<PARAM NAME="Counter00010.ScaleFactor" VALUE="0"/>
<PARAM NAME="Counter00010.Show" VALUE="0"/>
<PARAM NAME="Counter00010.Selected" VALUE="0"/>
<PARAM NAME="Counter00010.Minimum" VALUE="0"/>
<PARAM NAME="Counter00010.Maximum" VALUE="19.5311936718356"/>
<PARAM NAME="Counter00010.Average" VALUE="0.934764706536613"/>
<PARAM NAME="Counter00010.StatisticStatus" VALUE="0"/>
<PARAM NAME="Counter00011.Path" VALUE="\System\Context Switches/sec"/>
<PARAM NAME="Counter00011.Color" VALUE="10907866"/>
<PARAM NAME="Counter00011.Width" VALUE="1"/>
<PARAM NAME="Counter00011.LineStyle" VALUE="0"/>
<PARAM NAME="Counter00011.ScaleFactor" VALUE="-2"/>
<PARAM NAME="Counter00011.Show" VALUE="0"/>
<PARAM NAME="Counter00011.Selected" VALUE="0"/>
<PARAM NAME="Counter00011.Minimum" VALUE="392.069168478087"/>
<PARAM NAME="Counter00011.Maximum" VALUE="6824.66491282604"/>
<PARAM NAME="Counter00011.Average" VALUE="793.734095771009"/>
<PARAM NAME="Counter00011.StatisticStatus" VALUE="0"/>
</OBJECT>
<script language="VBScript">
On Error Resume Next
Sub Window_OnLoad
Set Service = GetObject("winmgmts:{authenticationLevel=PktPrivacy}!root/MicrosoftIdentityIntegrationServer")
Set MASet = Service.ExecQuery("select Name from MIIS_ManagementAgent")
for each MA in MASet
Monitor.Counters.Add("\FIM 2010: Management Agents(" + MA.name + ")\Objects Exported /sec")
Monitor.Counters.Add("\FIM 2010: Management Agents(" + MA.name + ")\Objects Read /sec")
Monitor.Counters.Add("\FIM 2010: Synchronization Engine(" + MA.name + ")\Objects Synchronized /sec")
Next
End Sub
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment