Archive for the ‘Windows’ Category.

Active Directory via linha de comando

Para quem precisar fazer algum scritps no windows que interaja com Active Directory, existe um comando que facilita este trabalho: ldifde.exe. Ele está localizado sob o diretório c:\windows\system32, e entre suas opções podemos encontrar a possibilidade de importar/exportar arquivos LDIF, estender o schema, criar, modificar ou excluir objetos entre outros.

Referência:
Microsoft LDIFDE


Technorati : , ,

Restore do IIS

Como fiz um script que efetua o backup do IIS e recentemente fui questionado do procedimento de restore em caso de perda dos metadados do Microsoft Internet Information Services (IIS), abaixo escrevi um pequeno script que permite efetuar essa restauração:
@Echo off
set metadata="C:\WINDOWS\system32\inetsrv\MetaBack"
set iis= "c:\backup"
cd %iis%
copy iisBackup.* %metadata%
iisback /restore /b iisBackup /v 1
cd \
echo fim do restore

Básicamente são passados os parâmetros para efetuar a restauração (/restore) a descrição do arquivo de backup (/b iisBackup) e a versão (/v 1).

História do Unix, Windows e Linguagens de programação

Pois bem… faz algum tempo que não publico nada por aqui e para (re)começar bem vou abordar uma questão de história.

Conversando com minha noiva sobre a história da computação, me lembrei de um site (na verdade um PDF) que possuia uma árvore genealógica do sistema Unics (que depois virou unix) desde sua origem em setembro de 1969. Como da última vez que o acessei este site ainda estávamos no Linux Kernel 2.4.5 (Junho 2001) não sabia se ele ainda existia e se ainda estava sendo atualizado. Pra variar utilizei o google e voialá! achei o bendito.

Fiquei feliz após análisa-lo e constatar que está extremamente atualizado, sendo que a última entrada é do Darwin 8.5 (junto com o MacOS X) de 15/02/2006. Não são todos os sistemas que se encontram neste gráfico, o próprio autor avisa que existem 96 “sabores” (que ele conhece) que não estão relacionados.

Ainda no mesmo site, achei dois outros links para árvores genealógicas do Windows e das linguagens de programação.
No caso das linguagens, são listadas apenas 50, porém existe uma listagem com 2500 linguagens em The Language List.
Segue abaixo os links:

Nos sites, encontram-se um preview do gráfico (para visualização no browser) e arquivos PDF e Postscript para impressão em A4, letter e Plotter dos diagrama. No caso do Unix existe também um índice das diversar versões com seus respectivos anos de “nascimento”.

Outros links interesantes que podem ser encontrados:

Recomendo que quem tem interesse em história da informática, dê uma navegada nesse site. Existem diversos outros links com muito mais informações.

A propósito falando de história, não sei quem havia me perguntado dia desses, qual era a primeira versão de kernel do Linux que “vi” o lançamento… era o 2.0.36 (em novembro de 1998). Nessa época eu usava o Minilinux, uma distro em 4 disquetes baseada em Slackware que era instalada sobre FAT32 e vinha até com X-Window (se alguém quiser, ainda tenho ela aqui :) ). Nesse ano também, foi quando fui para a fenasoft e adquiri da “Conectiva Internet Solutions” meu primeiro CD de instalação de Linux que era o “Conectiva Red Hat Linux versão Marumbi”. Foi a partir dai que me encantei com esse sistema e o utilizo até hoje, principalmente em servidores.

[update 08/05/06]

Achei outro link com um poster em pdf da O’Reilly com 50 linguagens de programação: The history of Programming Language.

[/update 08/05/06]

Carregando Legendas no Windows Media Player 9

Eu costumava utilizar alguns softwares específicos para poder ver videos com legendas em formato SRT, até que meu amigo (Denial) me falou de um jeito muito mais fácil. Basta adicionar o suporte a legendas no Windows Media Player. Para isso:

  1. Baixe aqui o arquivo vsfilter_XXXXXXXX.zip;
  2. Descompacte e mova o arquivo VSFilter.dll (da pasta Release) para o diretório C:\Windows\System32;
  3. Entre no prompt de comando (Iniciar -> Executar -> cmd);
  4. Entre no diretório do system32:
    cd C:\Windows\System32
  5. Registre a DLL:
    regsvr32 vsfilter.dll

Um detalhe importante é que o nome do arquivo da legenda deve ser o mesmo do video.

Depois de tudo configurado, basta abrir o video no Windows Media Player e a legenda será carregada automaticamente. Você poderá notar que aparecerá um ícone com uma seta verde ao lado do relógio. Clicando sobre ele, você terá acesso a várias opções para configuração das legendas, inclusive permitir que esta aplicação seja carregada automaticamente quando não houver legenda compativel (com o mesmo nome do video), permitindo assim que você possa carrega-la de outro lugar (ou com outro nome).

?? importante lembrar que o uso dessas legendas são para videos que você tenha feito ou que tenha o direito de usá-lo e não para videos com copyright baixados da Internet.

Problema de acesso a compartilhamentos no Windows XP

Quem já não se deparou com a mensagem “Você não tem permissão para usar este recurso de rede” ou “You might not have permission to use this network resource” ao tentar acessar um compartilhamento em uma máquina com windows XP utilizando o nome da máquina para acesso? Bem eu já, e o que havia me deixado mais confuso, é que se tentasse acessar o mesmo compartilhamento utilizando o endereço IP tudo funcionava perfeitamente.
Continue reading ‘Problema de acesso a compartilhamentos no Windows XP’ »

Backup do IIS

Segue abaixo um simples script que permite efetuar o backup do Microsoft Internet Information Services (IIS).


@echo off
set metadata="C:\WINDOWS\system32\inetsrv\MetaBack"
set iis= "c:\backup"


iisback /backup /b iisBackup /v 1 HIGHEST_VERSION /overwrite


cd %metadata%
copy iisBackup.* %iis%
cd \
echo fim da copia

O parâmetro /bakup habilita os demais parâmetros. Também existe o /restore que permite restaurar um backup realizado anteriormente. Segue a descrição dos parâmetros utilizados:

  • /b iisBackup: Descrição do arquivo de backup;
  • /v 1 HIGHEST_VERSION: Especifica o número de versão a ser atribuído ao backup. Pode ser qualquer número inteiro, HIGHEST_VERSION ou NEXT_VERSION. [Padrão: NEXT_VERSION];
  • /overwrite: Faz o backup mesmo se existir um backup com nome e versão idênticos no local especificado, substituindo-o, se necessário.

<update 12/05/2006> Publique hoje um novo post explicando como efetuar a restauração do backup do IIS. </update>

Ferramenta para dimensionar seus servidores em um ambiente virtual

No link HP MS Virtual Server Solution Sizer encontra-se uma ferramenta para auxiliar no dimensionamento de novas máquinas (Hardware HP) que rodarão múltiplos ambientes virtualizados para consolidar velhos servidores.

No início do processo é possível informar quais os servidores que se deseja consolidar, informando suas características de hardware, software e utilização atual. Também é possível carregar uma planilha excel contendo os dados necessários.

Os cálculos são realizados após completar o questionário com algumas informações relevantes e ao final será apresentando uma planilha com a quantidade de servidores necessários e nos detalhes, uma proposta de como poderia ser distribuido os antigos servidores dentro do novo modelo e a possível utilização de cada equipamento.

O software utilizado para a virtualização é o Microsoft Virtual Server 2005 que requer como sistema operacional Host o Microsoft Windows 2003.

Corrigindo arquivos PST corrompidos

Quem utiliza o Outlook/Outlook Express já deve ter se deparado com uma corrupção do seu arquivo .PST (Pastas Pessoais). Existem diversas ferramentas que efetuam a correção desse arquivo, mas o que poucos sabem é que o próprio windows fornece uma aplicação para reparar arquivos .PST danificados: o scanpst.exe.

O scanpst pode ser localizado sob o menu Programas -> acessórios -> Ferramentas do sistema ou no diretório C:\Arquivos de programas\Arquivos comuns\System\MSMAPI\1033

No caso de pasta offline (.OST) utilizadas para acesso Offline a pastas do MS Exchange Server, pode-se utilizar a ferramenta scanost.exe localizada no diretório acima ou o próprio scanpst.exe.

Alterando a senha do usuário root no MySQL

Algumas vezes já me deparei com a dificuldade de tentar me lembrar qual era mesmo a senha que eu havia definido para o usuário root nos servidores com MySQL… depois de algumas vezes decidi guardar esta dica em algum lugar que me facilitasse recuperar quando necessário, e lá foi ela pra minha incrível base de conhecimentos em arquivo texto indexada pelo grep ;) . Bem, como tudo evolui, a base de conhecimentos em arquivo texto transformou-se neste blog e mais uma dica fará parte dele agora (não que a solução anterior estivesse ruim, mas infelizmente não era pública).

Para alterar a senha do usuário root siga os seguintes passos:

Linux:

  1. Parar o serviço do MySQL (service mysqld stop, /etc/init.d/mysqld stop, matando o processo – conforme sua distribuição);
  2. Reiniciar o mysql com a opção –skip-grant-tables (você poderá utilizá-la ao iniciar o mysqld manuamente ou colocando-a no arquivo de init)
  3. Alterar a senha do usuário root com o comando:
    # mysqladmin -u root password 'nova_senha'
    # mysqladmin flush-privileges
    

    você pode alterar a senha também com o comando:

    # mysql -u root mysql
    mysql> UPDATE user SET Password=PASSWORD('nova_senha') WHERE User='root';
    mysql> FLUSH PRIVILEGES;
    

Windows XP (com o MySQL rodando como serviço):

  1. Entrar nos serviços do windows (Iniciar -> Executar -> services.msc);
  2. Procure pelo MySQL, clique com o botão direito sobre ele e vá em propriedades;
  3. Pare o serviço (clicando sobre o botão parar);
  4. Insira no campo “Parâmetros de inicialização” o parâmetro –skip-grant-tables e clique no botão iniciar e em seguida botão Ok;
  5. Execute o cmd (Iniciar -> Executar -> cmd) , entre no diretório de binários do MySQL (cd c:\arquivos de programas\mysql\bin (ou onde estiver instalado));
  6. Alterar a senha do usuário root com o comando:
    mysqladmin -u root password 'nova_senha'
     mysqladmin flush-privileges
    

    você pode alterar a senha também com o comando:

    mysql -u root mysql
    mysql> UPDATE user SET Password=PASSWORD('nova_senha') WHERE User='root';
    mysql> FLUSH PRIVILEGES;
    

O parâmetro –skip-grant-tables desabilita no servidor o uso do sistema de privilégios. Com isso todos os usuários terão acesso a todos os bancos de dados. Ao executar o comando Flush privileges, o servidor retorna a utilizar seu sistema de privilégios, mantendo a segurança original do serviço.

Agora se você adicionou o parâmetro –skip-grant-tables no arquivo de init, não se esqueca de remové-lo de lá, para evitar que na próxima reinicialização do serviço ele fique vulnerável. Caso seu MySQL esteja no Windows, execute os 4 primeiros passos novamente removendo o parâmetro passado na inicialização.

Update: O Artigo foi adaptado também para apresentar a troca de senhas no ambiente windows conforme sugestão do Carlos Henrique.

Problema na exibição de PDFs em Internet Explorer usando a PDFlib

Estava fazendo alguns testes com o PDFLib, e percebi um certo problema em navegadores Internet Explorer: Quando tentava gerar um PDF passando-o em modo Inline para o browser (não como anexo), o Internet Explorer dava erro e não exibia a mensagem. Abaixo o trecho do código que ilustra isso:

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=index.pdf");
print $buf;

Após algumas consultas, fui informado pelo próprio pessoal da PDFLib, que se tratava de um problema no próprio IE especificamente na geração de arquivos PDF de forma dinâmica. Quando o IE reconhece que o tipo do conteúdo necessita de um controle ActiveX (PDF por exemplo), ele cancela a transmissão e refaz uma nova requisição para obter o arquivo. Abaixo alguns links relacionados na KB da Microsoft sobre o problema:

Ontém depois de algumas pesquisas, descobri uma forma de contornar este erro, adicionando as linhas a seguir, antes do código relatado acima:

header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Content-Transfer-Encoding: none');

Espero que isso possa ajudar outros no mesmo problema…