Você não está dizendo se está executando o programa em um prompt de comando de 32 bits ou em um de 64 bits. O de 32 bits procurará no diretório SysWOW64 (ele o verá como System32) e o de 64 bits procurará no diretório System32. (Este deve ser um comentário, mas eu não tenho representante suficiente para comentar ainda.)
Se não estiver claro, o de 64 bits é C: \ Windows \ System32 \ cmd.exe, o de 32 bits é C: \ Windows \ SysWOW64 \ cmd.exe. Se você não tiver certeza de qual é o bitness de um prompt aberto, apenas execute o comando 'set' e observe o valor da variável de ambiente 'ProgramFiles'. O prompt de 64 bits deve mostrá-lo como C: \ Program Files, o de 32 bits como C: \ Program Files (x86).