<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>http://vwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=VI-DB_db-esx-check-v4.ps1</id>
	<title>VI-DB db-esx-check-v4.ps1 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://vwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=VI-DB_db-esx-check-v4.ps1"/>
	<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=VI-DB_db-esx-check-v4.ps1&amp;action=history"/>
	<updated>2026-04-19T07:12:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://vwiki.co.uk/index.php?title=VI-DB_db-esx-check-v4.ps1&amp;diff=1490&amp;oldid=prev</id>
		<title>Sstrutt: Updated categories</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=VI-DB_db-esx-check-v4.ps1&amp;diff=1490&amp;oldid=prev"/>
		<updated>2011-10-25T22:06:27Z</updated>

		<summary type="html">&lt;p&gt;Updated categories&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:06, 25 October 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l261&quot;&gt;Line 261:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 261:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:VMware]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:PowerCLI &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Script&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:PowerShell]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:PowerCLI]]&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
	<entry>
		<id>http://vwiki.co.uk/index.php?title=VI-DB_db-esx-check-v4.ps1&amp;diff=1218&amp;oldid=prev</id>
		<title>Sstrutt: Initial creation</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=VI-DB_db-esx-check-v4.ps1&amp;diff=1218&amp;oldid=prev"/>
		<updated>2011-03-14T08:22:50Z</updated>

		<summary type="html">&lt;p&gt;Initial creation&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
# ==========================================================&lt;br /&gt;
# ESX Status updater&lt;br /&gt;
# ==========================================================&lt;br /&gt;
# Simon Strutt        Feb 2011&lt;br /&gt;
# ==========================================================&lt;br /&gt;
#&lt;br /&gt;
# Version 1 &lt;br /&gt;
# - Initial creation&lt;br /&gt;
#&lt;br /&gt;
# Version 2 - Feb 2011&lt;br /&gt;
# - Script now manages intra-day checks, expects to started each AM&lt;br /&gt;
# - Added log rollover&lt;br /&gt;
#&lt;br /&gt;
# Version 3 - Feb 2011&lt;br /&gt;
# - Allow for ESX state data move to esx_state db table&lt;br /&gt;
# - Add % used to data collection&lt;br /&gt;
# - Add $DoSingleRun to bypass scheduling&lt;br /&gt;
#&lt;br /&gt;
# ==========================================================&lt;br /&gt;
&lt;br /&gt;
$start = Get-Date&lt;br /&gt;
$UserFile = &amp;quot;User.fil&amp;quot;&lt;br /&gt;
$PassFile = &amp;quot;Pass.fil&amp;quot;                           # Encrypted file to store password in&lt;br /&gt;
&lt;br /&gt;
# DB connection stuff...&lt;br /&gt;
$user = &amp;#039;powercli&amp;#039; &lt;br /&gt;
$pass = &amp;#039;powercli&amp;#039; &lt;br /&gt;
$database = &amp;#039;vi&amp;#039; &lt;br /&gt;
$MySQLHost = &amp;#039;192.168.10.1&amp;#039; &lt;br /&gt;
&lt;br /&gt;
# Scheduler stuff...&lt;br /&gt;
$DoSingleRun = 0            # Ignore scheduling and just run once&lt;br /&gt;
$IntervalMins = 15          # Should fit into an hour exactly&lt;br /&gt;
$End = &amp;quot;18:50&amp;quot;              # Time of day that script should cease (should be just after last required run time)&lt;br /&gt;
$CheckThrottle = 250        # Idle throttle / time check interval (msec)&lt;br /&gt;
&lt;br /&gt;
# Include library files&lt;br /&gt;
. .\lib\Standard.ps1&lt;br /&gt;
&lt;br /&gt;
# MySQL functions ===============================================================================&lt;br /&gt;
&lt;br /&gt;
function ConnectMySQL([string]$user, [string]$pass, [string]$MySQLHost, [string]$database) { &lt;br /&gt;
    # Load MySQL .NET Connector Objects &lt;br /&gt;
    [void][system.reflection.Assembly]::LoadWithPartialName(&amp;quot;MySql.Data&amp;quot;) &lt;br /&gt;
 &lt;br /&gt;
    # Open Connection &lt;br /&gt;
    $connStr = &amp;quot;server=&amp;quot; + $MySQLHost + &amp;quot;;port=3306;uid=&amp;quot; + $user + &amp;quot;;pwd=&amp;quot; + $pass + &amp;quot;;database=&amp;quot;+$database+&amp;quot;;Pooling=FALSE&amp;quot; &lt;br /&gt;
    try {&lt;br /&gt;
        $conn = New-Object MySql.Data.MySqlClient.MySqlConnection($connStr) &lt;br /&gt;
        $conn.Open()&lt;br /&gt;
    } catch [System.Management.Automation.PSArgumentException] {&lt;br /&gt;
        Log &amp;quot;Unable to connect to MySQL server, do you have the MySQL connector installed..?&amp;quot;&lt;br /&gt;
        Log $_&lt;br /&gt;
        Exit&lt;br /&gt;
    } catch {&lt;br /&gt;
        Log &amp;quot;Unable to connect to MySQL server...&amp;quot;&lt;br /&gt;
        Log $_.Exception.GetType().FullName&lt;br /&gt;
        Log $_.Exception.Message&lt;br /&gt;
        exit&lt;br /&gt;
    }&lt;br /&gt;
    Log (&amp;quot;Connected to MySQL database &amp;quot; + $conn.Database + &amp;quot; on &amp;quot; + $conn.DataSource + &amp;quot; (ver &amp;quot; + $conn.ServerVersion + &amp;quot;)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    return $conn &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
function DisconnectMySQL {&lt;br /&gt;
    $SQLconn.Close()&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ExecuteMySQLNonQuery([string]$query) { &lt;br /&gt;
    # NonQuery - Insert/Update/Delete query where no return data is required&lt;br /&gt;
    &lt;br /&gt;
    if ($LogNonQueries) {&lt;br /&gt;
        Log ($query)&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    try {&lt;br /&gt;
        $cmd = $SQLconn.CreateCommand()               # Create command object&lt;br /&gt;
        $cmd.CommandText = $query                     # Load query into object&lt;br /&gt;
        $RowsInserted = $cmd.ExecuteNonQuery()        # Execute command&lt;br /&gt;
        $cmd.Dispose()                                # Dispose of command object&lt;br /&gt;
        if ($RowsInserted) { &lt;br /&gt;
            return $RowInserted &lt;br /&gt;
        } else { &lt;br /&gt;
            return $false &lt;br /&gt;
        }&lt;br /&gt;
    } catch {&lt;br /&gt;
        Log (&amp;quot;ExecuteMySQLNonQuery($query) error...&amp;quot;)&lt;br /&gt;
        Log $_.Exception.GetType().FullName&lt;br /&gt;
        Log $_.Exception.Message&lt;br /&gt;
        Exit&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ExecuteMySQLQuery([string]$query) { &lt;br /&gt;
    # Query - Select etc query where return data is expected&lt;br /&gt;
    try {&lt;br /&gt;
        $cmd = $SQLconn.CreateCommand()                                             # Create command object&lt;br /&gt;
        $cmd.CommandText = $query                                                   # Load query into object&lt;br /&gt;
        $dataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($cmd)     # Create data adapter from query command&lt;br /&gt;
        $dataSet = New-Object System.Data.DataSet                                   # Create dataset&lt;br /&gt;
        $dataAdapter.Fill($dataSet, &amp;quot;data&amp;quot;)                                         # Fill dataset from data adapter, with name &amp;quot;data&amp;quot;              &lt;br /&gt;
        $cmd.Dispose()&lt;br /&gt;
        $dataAdapter.Dispose()&lt;br /&gt;
        return $dataSet.Tables[&amp;quot;data&amp;quot;]                                              # Returns an array of results&lt;br /&gt;
    } catch {&lt;br /&gt;
        Log (&amp;quot;ExecuteMySQLQuery($query) error...&amp;quot;)&lt;br /&gt;
        Log $_.Exception.GetType().FullName&lt;br /&gt;
        Log $_.Exception.Message&lt;br /&gt;
        Exit&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ExecuteMySQLScalar([string]$query) {&lt;br /&gt;
    # Scalar - Select etc query where a single value of return data is expected&lt;br /&gt;
    try {&lt;br /&gt;
        $cmd = $SQLconn.CreateCommand()                                             # Create command object&lt;br /&gt;
        $cmd.CommandText = $query                                                   # Load query into object&lt;br /&gt;
        $cmd.ExecuteScalar()                                                        # Execute command&lt;br /&gt;
    } catch {&lt;br /&gt;
        Log (&amp;quot;ExecuteMySQLScalar($query) error...&amp;quot;)&lt;br /&gt;
        Log $_.Exception.GetType().FullName&lt;br /&gt;
        Log $_.Exception.Message&lt;br /&gt;
        Exit&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Check function =================================================================================&lt;br /&gt;
&lt;br /&gt;
function Perform-ESX-Check {&lt;br /&gt;
    # Disconnect any existing VI Server sessions&lt;br /&gt;
    if ($DefaultVIServers.Count) {&lt;br /&gt;
        Log(&amp;quot;Disconnect existing vCentre server connections...&amp;quot;)&lt;br /&gt;
        Disconnect-VIServer -Server * -Force -Confirm:$false&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    foreach ($vc in $VCs) {&lt;br /&gt;
        # Check its a valid record 1st&lt;br /&gt;
        if (!$vc.vcid) {&lt;br /&gt;
            Continue&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        # Connect to vCentre&lt;br /&gt;
        try {&lt;br /&gt;
            Log(&amp;quot;Checking &amp;quot; + $vc.name)&lt;br /&gt;
            $VCconn = Connect-VIServer -Server $vc.name -Credential $cred -WarningAction SilentlyContinue -ErrorAction &amp;quot;Stop&amp;quot;&lt;br /&gt;
        } catch [VMware.VimAutomation.ViCore.Types.V1.ErrorHandling.InvalidLogin] {&lt;br /&gt;
            Log(&amp;quot;Unable to connect to vCentre, invalid logon error !!&amp;quot;)&lt;br /&gt;
            Log(&amp;quot;Abandoning further script processing in order to prevent potential account lockout.&amp;quot;)&lt;br /&gt;
            $Major_Error = 99&lt;br /&gt;
            Break&lt;br /&gt;
        } catch {&lt;br /&gt;
            Log(&amp;quot;Unable to connect to vCentre - &amp;quot; + $_)&lt;br /&gt;
            $Major_Error += 1&lt;br /&gt;
            Continue&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        $dbESXs = ExecuteMySQLQuery(&amp;quot;SELECT esxid, name FROM esx WHERE vcid = &amp;quot; + $vc.vcid + &amp;quot; AND exist=1;&amp;quot;)&lt;br /&gt;
        foreach ($esx in $dbESXs) {&lt;br /&gt;
            if (!$esx.esxid) {&lt;br /&gt;
                Continue&lt;br /&gt;
            }&lt;br /&gt;
            $esxobj = Get-VMHost ($esx.name + &amp;quot;*&amp;quot;)&lt;br /&gt;
            $query = &amp;quot;UPDATE esx_state SET state=&amp;#039;&amp;quot; + $esxobj.ConnectionState + &amp;quot;&amp;#039;, status=&amp;#039;&amp;quot; + $esxobj.ExtensionData.OverallStatus + &amp;quot;&amp;#039;, cpu_pc=&amp;quot; + [Math]::Round(($esxobj.CpuUsageMhz / $esxobj.CpuTotalMhz * 100))&lt;br /&gt;
            $query += &amp;quot;, mem_pc=&amp;quot; + [Math]::Round(($esxobj.MemoryUsageMB / $esxobj.MemoryTotalMB * 100)) + &amp;quot; WHERE esxid=&amp;quot; + $esx.esxid + &amp;quot;;&amp;quot;&lt;br /&gt;
            ExecuteMySQLNonQuery($query)&lt;br /&gt;
        }&lt;br /&gt;
        ExecuteMySQLNonQuery(&amp;quot;UPDATE vc SET last_esx_check=NOW() WHERE vcid=&amp;quot; + $vc.vcid + &amp;quot;;&amp;quot;)&lt;br /&gt;
               &lt;br /&gt;
        Disconnect-VIServer -Server $VCconn -Confirm:$false&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function Log-Perf {&lt;br /&gt;
    Log (&amp;quot;Perf CPU(sec): &amp;quot; + [Math]::Round($proc.cpu, 0) + &amp;quot;, Paged Mem (MB): &amp;quot; + [Math]::Round(($proc.pm/1024), 0) + &amp;quot;, WrkSet Mem (MB): &amp;quot; + [Math]::Round(($proc.ws/1024), 0))&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# MAIN SCRIPT ====================================================================================&lt;br /&gt;
&lt;br /&gt;
# Initial prep -----------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if ($DoSingleRun) {&lt;br /&gt;
    Start-Transcript -Path db-base-check-test.log -Append&lt;br /&gt;
} else {&lt;br /&gt;
    Rename-Item -Path db-esx-check.log -NewName db-esx-check-1.log -Force&lt;br /&gt;
    Start-Transcript -Path db-base-check.log -Append&lt;br /&gt;
}&lt;br /&gt;
Log &amp;quot;Started script run at $start&amp;quot; &lt;br /&gt;
&lt;br /&gt;
# Get process for this script&lt;br /&gt;
$proc = [System.Diagnostics.Process]::GetCurrentProcess()&lt;br /&gt;
&lt;br /&gt;
# Check scheduler variables&lt;br /&gt;
if ((60 % $IntervalMins) -ne 0) {&lt;br /&gt;
    Log &amp;quot;Interval error - $IntervalMins mins doesn&amp;#039;t fit into an hour!&amp;quot;&lt;br /&gt;
    Exit&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
try {&lt;br /&gt;
    $EndTime = Get-Date $End&lt;br /&gt;
} catch {&lt;br /&gt;
    Log &amp;quot;Invalid end time: $End hrs&amp;quot;&lt;br /&gt;
    Log $_.Exception.GetType().FullName&lt;br /&gt;
    Log $_.Exception.Message&lt;br /&gt;
    Exit&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Set dummy last run time (aligned to nice start time), and next run time&lt;br /&gt;
$LastRunTime = Get-Date&lt;br /&gt;
$offset = ($IntervalMins + ($LastRunTime.Minute % $IntervalMins))&lt;br /&gt;
$LastRunTime = $LastRunTime.AddMinutes(-$offset)&lt;br /&gt;
$LastRunTime = $LastRunTime.AddSeconds(-$LastRunTime.Second)&lt;br /&gt;
$NextRunTime = $LastRunTime.AddMinutes($IntervalMins)&lt;br /&gt;
&lt;br /&gt;
#Write-Host &amp;quot;Offset is       &amp;quot; $offset&lt;br /&gt;
Log (&amp;quot;Last runtime is &amp;quot; + $LastRunTime)&lt;br /&gt;
Log (&amp;quot;Next runtime is &amp;quot; + $NextRunTime)&lt;br /&gt;
Log (&amp;quot;Script cease at &amp;quot; + $EndTime)&lt;br /&gt;
&lt;br /&gt;
# Connect to MySQL database&lt;br /&gt;
$SQLconn = ConnectMySQL $user $pass $MySQLHost $database&lt;br /&gt;
&lt;br /&gt;
# Get list of VC&amp;#039;s (checks the SQL connection is in good working order as well)&lt;br /&gt;
$VCs = ExecuteMySQLQuery(&amp;quot;SELECT vcid, name, site FROM vc;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Load password credential from encrypted file&lt;br /&gt;
$pass = Get-Content $PassFile | ConvertTo-SecureString&lt;br /&gt;
$user = Get-Content $UserFile&lt;br /&gt;
$cred = New-Object System.Management.Automation.PsCredential($user, $pass)&lt;br /&gt;
&lt;br /&gt;
# Main loop -------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if ($DoSingleRun) {&lt;br /&gt;
    Log (&amp;quot;Doing single run...&amp;quot;)&lt;br /&gt;
    Perform-ESX-Check&lt;br /&gt;
} else {&lt;br /&gt;
    While (1) {&lt;br /&gt;
        if ($NextRunTime -lt (Get-Date)) {&lt;br /&gt;
            Log-Perf&lt;br /&gt;
            Log (&amp;quot;Starting run at &amp;quot; + (Get-Date))&lt;br /&gt;
            Perform-ESX-Check&lt;br /&gt;
            Log (&amp;quot;Completed run at &amp;quot; + (Get-Date))&lt;br /&gt;
            $LastRunTime = $LastRunTime.AddMinutes($IntervalMins)&lt;br /&gt;
            $NextRunTime = $LastRunTime.AddMinutes($IntervalMins)&lt;br /&gt;
            if ($NextRunTime -lt (Get-Date)) {&lt;br /&gt;
                Log &amp;quot;WARNING: Next run is going to be late!&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        if ($EndTime -lt (Get-Date)) {&lt;br /&gt;
            Log (&amp;quot;Script ending at &amp;quot; + (Get-Date))&lt;br /&gt;
            Break&lt;br /&gt;
        }&lt;br /&gt;
        Start-Sleep -Milliseconds $CheckThrottle&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
DisconnectMySQL&lt;br /&gt;
Stop-Transcript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMware]]&lt;br /&gt;
[[Category:PowerShell]]&lt;br /&gt;
[[Category:PowerCLI]]&lt;/div&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
</feed>