Multithreading Help w/Powershell <p>So I have a script that will go through and ping all the servers from a list that is stored in SQL Server. The script works fine but it does it all sequentially (lame). </p> <p>Can someone help me out as to how I would change this to use multithreading instead of a foreach loop?</p> <pre><code> $Server = "ServerName" $Database = "DatabaseName" $con = "server=$Server;database=$Database;Integrated Security=sspi" $cmd = "SELECT ServerName FROM dbo.vwServerListActive" $da = new-object System.Data.SqlClient.SqlDataAdapter ($cmd, $con) $dt = new-object System.Data.DataTable $da.fill($dt) | out-null foreach ($srv in $dt) { $ping = new-object System.Net.NetworkInformation.Ping $Reply = $ping.send($srv.ServerName) $ServerName = $srv.ServerName $ServerName $Reply.status if ($Reply.status –eq “Success”) { $sql = "UPDATE dbo.ServerList SET GoodPing = 1 WHERE GoodPing &lt;&gt; 1 AND ServerName = '$ServerName'" } else { $sql = "UPDATE dbo.ServerList SET GoodPing = 0 WHERE GoodPing &lt;&gt; 0 AND ServerName = '$ServerName'" } $Reply = "" invoke-sqlcmd -serverinstance $Server -database $Database -query $sql } </code></pre>