SysWoW64 System32 Sysnative

março 4th, 2015 by franklin Leave a reply »

Estava fazendo um script em php para limpar o diretório C:\WINDOWS\System32\inetsrv\backup de tempos em tempos, mas meu script informava que o diretório não existia, e ele estava lá, conseguia ver no explorer.

Resumindo, a máquina que eu estava fazendo isso era em 64bits, isso aconteceu porque o php do servidor rodava em 32bits, pesquisando descobri que uma aplicação 32bits quando acessa o diretório C:\WINDOWS\System32 é redirecionada para o diretório C:\WINDOWS\SysWoW64, e o diretório C:\WINDOWS\SysWoW64\inetsrv\backup realmente não exisita.

Como fiz para contornar a situação? Com o tempo aprendi que a Microsoft adora gambiarra, diria até que ama. Para que o script funcionasse, precisei utilizar o path C:\WINDOWS\sysnative\inetsrv\backup.

Aplicações em 32bits para acessar o diretório system32, precisam usar o path sysnative, mas se tu for no explorer e tentar acessar o c:\windows\sysnative, tu não vai conseguir, porque o diretório não é acessível em aplicações 64bits, somente 32bits :D.

Link da explicação detalhada: http://comments.gmane.org/gmane.os.cygwin/148335
Link da microsoft sobre o File System Redirector: https://msdn.microsoft.com/en-us/library/windows/desktop/aa384187(v=vs.85).aspx

Advertisement

Deixe um comentário