This week I worked with a group of people that have a monitoring application — basically a glorified task scheduler for 32bit DOS applications. Among other things, this application attempts to check Microsoft Cluster Services (MSCS) failover status and send emails (using BLAT.exe) in the event a cluster was unbalanced. The code was no longer working after moving to Windows 2008R2. While helping them debug code, I realized that the ‘cluster’ command was not producing any output; likely due to the 32bit mode scheduler. A quick Google search came up with a simple solution — use the Windows SYSNATIVE directory instead of SYSTEM32 (http://www.tipandtrick.net/2008/how-to-suppress-and-bypass-system32-file-system-redirect-to-syswow64-folder-with-sysnative/).
However, updating the code caused a slight problem because the sysnative path was not available on their down level clusters. Here is a very simple workaround, but one I thought worth mentioning:
if exist "C:\Windows\sysnative\cluster.exe" ( set clusterPath="C:\Windows\sysnative\cluster.exe" ) else ( set clusterPath=%windir%\system32\cluster.exe ) echo %clusterPath%
This batch file code checks for the existence of the sysnative\cluster.exe and if it is not available fails back to the previous path. A very simple solution, but the customer is happy.