Páginas Web e Registro do Windows?

Mais uma dúvida comum sobre scripting e Windows Script Host:

Olá Vinicius,

E tenho uma dúvida muito rápida sobre o objeto WshShell do .NET Framework 3.0. Caso você possa me ajudar, lhe serei muito grato:
1. Posso colocar em uma página html do meu website, e incluir um javascript nesta página, para que um usuário do meu site navegando por esta página, e sem qualquer permissão (adicional para executar scripts ou coisa parecida) posso passar a ler informações do registro do windows como por exemplo a quantidade dos dispositivos USB conectados na máquina dele:
var shell = new ActiveXObject("WScript.Shell"); 
var path = "HKLM\\System\\CurrentControlSet\\Services\\USBSTOR\\Enum\\";
var scount = shell.RegRead(path+"Count");
2. Caso a afirmação acima seja positiva, é possível ler quais são os arquivos em um diretório específico e ter uma lista dos nomes dos arquivos que lá estão a partir do mesmo WshShell?
Obrigado e abraços, 

E, é claro, a resposta:

Olá Fernando,
infelizmente, isso não será possível. Veja os comentários a seguir:
1) O WshShell não pertence ao .Net Framework. Ele faz parte do Windows Script Host Object Model. São coisas beeeeeeem diferentes.
2) Não é possível utilizar esse tipo de controle ActiveX em uma página Web comum com as configurações padrão do IE. Isso significa que, se funcionar, seu sistema só vai rodar em IEs cujos donos configurem explicitamente para permitir esse tipo de acesso. Não vejo muita gente fazendo isso não, mesmo em intranets, devido ao alto risco de segurança que essa alteração representa.
3) Para ler arquivos com o WSH, você precisa antes descobrir qual letra de unidade está sendo utilizada para o pendrive.
[]s,
Vinicius

Normalmente, o uso de Javascript é restrito dentro do navegador. Essa é a configuração padrão, por motivos de segurança. Entretanto, as permissões de arquivos .HTA são menos restritivas, o que permite desenvolver pequenas interfaces administrativas para uso dentro das empresas. Bons exemplos são os instaladores do SQL, ISA e Exchange, cuja tela inicial é um simples .HTA.

Até a próxima!

PS: vou continuar a série sobre como renomear computadores do AD mais tarde =)

Categorias dessa postagem: ,

Comentários