sexta-feira, 30 de janeiro de 2009

Falta de Permissão na Instalação do .Net 3.5

Resolvi escrever esse post por causa de um problema que tive na instalação do Framework .Net 3.5.

Para falar a verdade é um problema específico que acontece por falta de permissão do usuário que efetua a instalação, mas como esse cenário é comum nas empresas hoje em dia, tenho certeze que vai servir para alguém.

Para detalhar o problema, preciso explicar como funciona a rede na empresa onde trabalho. Lá os computadores ficam em baixo do piso. Os desenvolvedores não têm acesso físico à máquina. Não podemos nem desligar as benditas! Eu fiz isso no primeiro dia. No dia seguinte, tiveram que chamar o técnico. Que vergonha, o sujeito teve que levantar o piso e colocar metade do corpo dentro do chão para religar a máquina. Uma cena bizarra!

Bom, a rede não poderia ser diferente. Tudo é controlado de forma rígida. Tive que assinar dois documentos: um para autorizar a criação do meu usuário na rede; outro para justificar o motivo de meu usuário necessitar privilégios de administrador do computador.

Apesar de tudo isso, não tenho controle total sobre meu computador. Existem algumas normas configuradas no Active Directory (AD) que me impedem de acessar recursos como: adicionar e remover programas, papel de parede do desktop, entre outras configurações do Windows.

Para verificar se o Service Pack 2 (SP2) do Framework .Net 2.0 estava instalado, eu precisei criar um usuário no meu computador, com privilégios de administrador, sair da sessão (logoff) e entrar com esse usuário local. Só dessa forma consegui acessar a opção adicionar e remover programas do Windows.

Tendo esse cenário em vista, começam os problemas. Eu precisava instalar o Visual Studio 2008! E logo na primeira etapa, que é justamente a instalação do Framework .Net 3.5, o instalador abortava e saía da instalação com erro. Tentei primeiro diversas coisas como: reiniciar o computador, limpar o registro, logar com um usuário local, fora da rede etc.

Comecei a descobrir a solução quando baixei um pacote de instalação do .Net 3.5 separado da instalação do Visual Studio.

Download do pacote completo de redistribuição do Framework .Net 3.5
http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe

Pelo log do instalador, eu vi que o problema era em um componente chamado XPSEPSC que estava causando o erro. Eu descobri um link para baixar e instalar separadamente o tal componente problemático.

Instalador do XPSEPSC
http://www.download.windowsupdate.com/msdownload/update/v3-19990518/cabpool/xpsepsc-x86-en-us_f01c40d4ce7a451a51724bb2c44c164d063938e6.exe

Nesse momento eu vi uma mensagem de erro na instalação do XPSEPSC que me chamou a atenção. Alguma coisa dizendo que eu precisava de priviégios administrativos para continuar na instalação. Percebi então que o problema era de segurança e alguma norma do AD estava interferindo em minha instalação.

Nas pesquisas que fiz, descobri que este problema também se apresenta na forma de uma mensagem de erro que informa um termo "return value 3".

Para resolver, encontrei um pacote de ferramentas para administração e manutenção de servidores de forma remota. Chama PSTools. Nesse pacote tem uma ferramenta sensacional chamada PSExec.exe. Essa ferramenta faz uma impersonalização - se é que essa palavra existe - mas basicamente ela executa uma outra aplicação "por você" com identidade do usuário System, que é o usuário local com permissão total no Windows.

Instalador do PSTools
http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

O PSTools é um pacote de aplicativos, e o que nos interessa é o PSExec. Copie-o no diretório do Windows para ficar mais fácil de usar, pois ele é utilizado via linha de comando.

Utilize o comando abaixo para executar o instalador do XPSEPSC, por exemplo:
psexec -s -i "c:\exemplo\XPSEPSC-x86-en-US.exe"

Sempre digite o caminho absoluto. O PSExec não funciona com paths relativos.

Outro detalhe. Não se assuste se o seu anti-virus detectar esse aplicativo como um vírus. O próprio autor comenta no site do link acima que esse programa já foi usado por vários vírus para efetuar suas ações maliciosas, mas ele em si não é um vírus.

Até a próxima!
Renato Graccula

Organizando a Casa

Bom, ainda estou planejando o rumo deste blog. Na verdade eu criei esse blog com o nome Biotronics, pois eu queria publicar tutoriais sobre eletrônica e tecnologias biométricas.

Agora estou estudando outras coisas e acho que não deveria deixar passar a oportunidade de publicar meus aprendizados aqui. Mais para frente, quem sabe eu não abra uma área sobre eletrônica.

Para falar a verdade eu já tenho dois tutoriais prontos, um que ensina a escrever frases em um LCD de duas linhas por dezesseis caracteres; o outro ensina a programar o firmware de um micro-controlador.

Mas isso fica para depois. Agora vou colocar no ar uns posts sobre a instalação e configuração de um ambiente para desenvolvimento baseado nas mais novas tecnologias e tendências do mercado.

Estou falando do Framework .Net 3.5, do ambiente de desenvolvimento (IDE - Integrated Development Environment) Visual Studio 2008, dos novos padrões de arquitetura de desenvolvimento (Design Patterns) e do servidor de base de dados (SGBD - Sistema de Gerenciamento de Banco de Dados) SQL Server 2008.

Tem alguns outros nomes complicados também, mas vamos parar por aqui. Agora vou criar um post para explicar problemas que enfrentei na instalação do Microsoft Framework .Net 3.5. Consegui achar uma solução para resolver o problema que acho interessante divulgar, pois consegui achar apenas dois posts em fóruns bem escondidos sobre o assunto.

Até a próxima!
Renato Graccula

quinta-feira, 29 de janeiro de 2009

Quebra de Paradigma Tecnológico

Quem me conhece a bastante tempo sabe que eu fui o criador de um site de tecnologia chamado Serial Link.

Este site teve uma história longa – um dia eu conto aqui no blog – e no final, morreu. Acabou. O motivo é simples: o intuito do site era oferecer ensinamentos em programação – ASP e VB6 na época – de graça.

O material do site não possuía nenhum tipo de bloqueio contra cópia. O que aconteceu é que vários outros sites começaram a fazer links diretos para o meu site.

Resultado: o consumo de banda aumentou astronomicamente e conseqüentemente o valor do plano de hospedagem. Cheguei a pagar cerca de oitocentos reais em um determinado mês. Não consegui sustentar tal investimento.

Hoje, anos depois estou de volta. Fui reduzido a um blog. Começar de novo. Nunca foi um problema para mim.

Aconteceu exatamente agora na minha vida. Saí de um emprego que já estava durando cinco anos. Fiquei parado em uma plataforma tecnológica por longos cinco anos.

Acordei com um choque de tecnologia. Comecei a trabalhar essa semana com o Framework .Net 3.5, Visual Studio 2008, SQL Server 2005, Spring.Net, NHibernate, WCF, MyGeneration e Enterprise Architect.

Para quem estava trabalhando cinco longos anos com ASP, ASP.Net 1.1 e SQL Server 2000 é um choque e tanto!

Acordei em um mundo que não falava a minha língua! De repente me deparei com a inversão de controle... Quase deu um nó no meu cérebro. E não pára por aí, além da inversão de controle, a injeção de dependência, a programação orientada ao aspecto e aos serviços. Minha vista ficou até turva!

Agora estou estudando e entendendo algumas coisas. Vou postar minhas descobertas de desafios nos próximos posts desse blog.

Fiquem ligados, descobri coisas bem interessantes e que mudaram minha visão de tecnologia e de produção de sistemas empresariais.

Em breve vou começar a postar artigos sobre o que estou aprendendo. Apresentarei o meu ponto de vista sobre os assuntos citados acima.

Abraços,
Renato Graccula