I see now. I didn't test it out before, I just assumed. How about this one, though? This worked for me.
$updList = get-cluster -name "DMZ-AMD-CLUSTER"|get-vm | where-object {$_.powerstate -eq "PoweredON"} | % {get-view $_.ID} |where {$_.guest.toolsstatus -match "toolsOld" } | where {$_.guest.guestfamily -match "windowsGuest"}
I am wondering if the problem with the script not always working has to do with the version of Windows Installer on the VM. JP1690's script arguments should work for the newest version, but I think old versions of installer use /reboot=reallysuppress