Working with a client recently, they wanted to initiate a 64-bit Program through Alert Manager, DNSCMD to be exact, and we were unable to do this because there is no 32-bit Variant, which was causing issues.
We used a batch file to call the program. When monitoring this process through Windows Process Monitor, you could verify that Alert Manager was running CMD in 32-bit. It then attempted to run DNSCMD and it would search in SysWOW64, which did not have a 32-bit counterpart (only 64-bit) and resulted in a failed attempt.
The Sysnative command will avoid the re-direct to SysWOW64. It allows us to execute a batch file from Alert Manager and still work with the 64-bit processes.
Adding the following wrapper at the beginning of the batch file allows Alert Manager to call CMD as it normally does but still see the applications within the System32 directory:
IF "%PROCESSOR_ARCHITEW6432%"=="" GOTO native
%SystemRoot%\Sysnative\cmd.exe /c %0 %*
I have not tested this but Microsoft also offers the following VB Script wrapper per their documentation:
Set WshShell = CreateObject("WScript.Shell")
If (Len(WshShell.Environment("PROCESS")("PROCESSOR_ARCHITEW6432")) > 0) Then
exe = "%SystemRoot%\Sysnative\cmd.exe /c " & WScript.ScriptFullName
Set objArgs = WScript.Arguments
For Each strArg in objArgs
exe = exe & " " & strArg
retcode = WshShell.Run(exe, 0, True)
Understanding this as it applies to current Windows OS support and how SolarWinds Orion works with a 64-bit OS, I think will open a lot of opportunities for other IT teams to take proactive measures inside their environment leveraging Alert Triggers.
Did this post help you? Please post back any questions or comments.
Loop1 Systems: SolarWinds Training and Professional Services