Mais sobre o Windows Script Host 5.7: A saga continua

Escrevi recentemente sobre a versão do WSH do Windows Vista. Perguntei no NG público da MS e Al Dunbar respondeu-me que não havia nenhuma diferença significante, e que o 5.7 era somente o número de versão que vinha com o Vista, nada mais. Como não obtive nenhuma resposta e não há documentação oficial no MSDN ainda, aceitei e não investiguei nada a respeito do WSH 5.7 (até porque não uso o Vista aqui, mas sim o XP, com o WSH 5.6 build 8820).

Hoje, li no NG público da MS uma mensagem do Michael Harris, outra mensagem sobre o 5.7. A MS lançou hoje versões do WSH 5.7 para Windows 2000, XP e 2003. Eu, mais uma vez, tenho motivos para discordar que eles são iguais... até porque não faz sentido lançar o 5.7 para SOs anteriores se o 5.6 que tem neles for igual.

Além disso, outro fato interessante é que algumas pessoas na Internet encontraram uma diferença entre o 5.6 e o 5.7. O diretório padrão ao executar scripts não é mais a pasta onde o script se encontra, mas sim o diretório C:\Windows\System32 (possivelmente porque o Wscript e o Cscript, hosts do WSH, moram lá). Scripts antigos podem começar a falhar a partir de agora, caso o programador não tenha tomado o cuidado de mudar o diretório atual para o mesmo diretório onde o script está. O erro mais comum vai ser o caso de tentar abrir um arquivo na mesma da forma mais simples, passando caminho relativo:

set objFSO = CreateObject("Scripting.FilesystemObject")
set objFile = objFSO.OpenTextFile("teste.txt")

Esse script, até o 5.6, vai tentar abrir o arquivo teste.txt que está na mesma pasta do script. No 5.7, ele vai tentar o teste.txt que estiver na pasta Windows\System32. Logo, se você abre arquivos desta forma, vai ter problemas (eu tive em alguns aqui já).

Download details: Windows Script 5.7 for Windows 2000
http://www.microsoft.com/downloads/details.aspx?familyid=c03d3e49-b40e-4ca1-a0c7-cc135ec4d2be&displaylang=en&tm

Download details: Windows Script 5.7 for Windows XP
http://www.microsoft.com/downloads/details.aspx?familyid=47809025-d896-482e-a0d6-524e7e844d81&displaylang=en&tm

Download details: Windows Script 5.7 for Windows Server 2003
http://www.microsoft.com/downloads/details.aspx?familyid=f00cb8c0-32e9-411d-a896-f2cd5ef21eb4&displaylang=en&tm

Eu baixei o 5.7 e descompactei sem instalar por aqui. Vou tentar alguma engenharia reversa para descobrir o que há nas DLLs, mas posso adiantar uma coisa: a versão dele é a 5.7.0.16535. A do Windows Server 2008 (build 6001), que uso para testes, é a 5.7.0.16510, e retorna o diretório atual corretamente.

Vou testar instalar o update mesmo (build 16535) num XP e ver o que acontece.

Até logo!

Categorias dessa postagem:

Comentários