 TechNet Magazine September 2007

TechNet Magazine September 2007

Windows Vista: IMPLANTAÇÃO do WINDOWS VISTA com BDD 2007

Sua organização está pronta para migrar do Windows 2000 ou Windows XP para o Windows Vista e o projeto está sob sua responsabilidade. Não se preocupe. Aqui está um passo-a-passo sobre como utilizar o Business Desktop Deployment 2007 Solution Accelerator para simplificar a implantação do Windows Vista.

Michael Niehaus Windows Vista: Uma Guia para as Tecnologias de Backup do Windows Vista

O backup é algo que muitas pessoas ignoram até que seja muito tarde. Mas não há desculpa para isso, especialmente agora que o novo Centro de Backup e Restauração do Windows Vista oferece uma variedade de recursos que facilita a proteção dos seus dados contra a maioria das formas de perdas de dados. Descubra como você pode planejar uma estratégia de recuperação completa com o Windows Vista.

Christine Fok Windows Server: Onze ferramentas essenciais para gerenciar o Active Directory

Em uma grande organização, mesmo as tarefas do Active Directory mais comuns como, por exemplo, adicionar e modificar objetos, podem ser tediosas e demoradas. Essas onze ferramentas podem simplificar muito o gerenciamento do Active Directory.

Laura E. Hunter Windows Server: Reanimação de Objetos de Exclusões do Active Directory

Há alguns truques e ferramentas essenciais que devem ser incluídos em todos os planos de recuperação de desastres do Active Directory. A reanimação das marcas para exclusão é uma dessas técnicas, consistindo na única forma de recuperar objetos excluídos sem desativar um controlador de domínio. Aqui está um guia para localizar e recuperar marcas para exclusão no Active Directory.

Gil Kirkpatrick Comunicações: Conectando usuários com o Office Communications Server 2007

A comunicação unificada chegou. Faça um passeio pelo Microsoft Office Communications Server 2007 e descubra como os recursos integrados de mensagens, de voz, de vídeo e de conferência podem ajudá-lo a aumentar a produtividade e aperfeiçoar a colaboração de longa distância em sua organização.

Alan Maddison Do editor: Caminhos para o aprendizado

Joshua Trupin Cartas: Respostas às suas perguntas

Caixa de Ferramentas: Novos produtos para profissionais de TI

Greg Steen P&R do SQL: Afunilamentos de CPU, restauração, movimentação de bancos de dados e muito mais

Edited by Nancy Michell Utilitário em destaque: PageDefrag

A ferramenta de desfragmentação típica do Windows pode otimizar a maioria dos arquivos no seu HD. Mas alguns itens, como o arquivo de página do Windows e hives do Registro, estão além das possibilidades da maioria das ferramentas de desfragmentação. Esse utilitário, criado por Mark Russinovich para o Sysinternals, previne problemas ao desfragmentar os arquivos que permanecem intocáveis pela ferramenta.

Lance Whitney The Cable Guy: Modelos de host fortes e fracos

Um host de hospedagem múltipla fornece uma conectividade ampliada ao conectar várias redes simultaneamente. Entretanto, serviços executados em hosts de hospedagem múltipla ficam mais vulneráveis a ataques. Para ajudá-lo a prevenir ataques, dê uma olhada nos vários modelos de host de hospedagem múltipla e como são suportados no Windows.

Joseph Davies Windows PowerShell: Protegendo o shell

Durante a criação do Windows PowerShell, uma das principais preocupações da Microsoft foi a segurança. E isso pode ser comprovado. Examine alguns dos principais recursos e configurações de segurança, como a manipulação de credenciais e as diretivas de execução, que garantem que o Windows PowerShell não perderá o jogo para os mesmos problemas causados pelo VBScript.

Don Jones Ei, Equipe de Scripts!: É possível salvar esta relação?

Os bancos de dados relacionais foram criados para lidar com as relações um-para-muitos. Isso pode tornar um tanto complexa a escrita de scripts para consultar esses bancos de dados. Mas não se preocupe, pois a Equipe de Scripts está aqui para mostrar tudo o que você precisa saber.

The Microsoft Scripting Guys P&R do Exchange: Instalação, diário de mensagens, opções de armazenamento e muito mais

Saiba como usar o diário de mensagens para monitorar o e-mail da sua empresa, descubra se os usuários do Office 2003 podem usar a Unificação de Mensagens, examine as opções de armazenamento para a sua implementação do Exchange 2007, obtenha respostas sobre a conexão com o Exchange 2007 usando versões antigas do Outlook e muito mais.

KC Lemson and Nino Billic Security Watch: O impacto de longo prazo do Controle de Conta de Usuário

Por mais que seja explicado, ainda há muitas dúvidas e concepções erradas sobre o Controle de Conta de Usuário. Esta será uma discussão franca sobre o que o UAC é e não é, e como ele deve afetar a maneira de gerenciar sistemas.

Jesper M. Johansson Os arquivos da área de trabalho: Recuperação do PC com o Windows PE

O Windows Vista oferece algumas ferramentas de grande valor para facilitar a recuperação do sistema. Mas, quando se trata de organizações diversificadas e de grande porte, soluções prontas nem sempre funcionam. Se você atua em uma grande empresa que precisa criar soluções personalizadas de auto-recuperação, não perca a discussão sobre como criar sua própria solução de recuperação com o Windows PE.

Wes Miller Anotações de campo: Comida grátis e dicas de treinamento

Uma boa formação do usuário é fundamental para restringir os problemas ao mínimo possível. Então, não se esqueça da importância de promover sessões informais de treinamento e de circular pelo escritório para ver se alguém tem dúvidas que, de outro modo, não viriam à tona.

Michael Dragone Segredos do Windows: O Equilíbrio do Known DLLs

O recurso Known DLLs foi incluído no Windows para melhorar o desempenho. Descubra como funciona e repare como esse recurso foi mudando com o tempo.

Raymond Chen


 Windows Vista: IMPLANTA&#199;&#195;O do WINDOWS VISTA com BDD 2007
Windows Vista Michael Niehaus

IMPLANTAÇÃO do WINDOWS VISTA com BDD 2007
Visão geral:
  • BDD 2007 Solution Accelerator
  • Preparação da imagem
  • Drivers e pacotes de aplicativos

Você vem adiando essa tarefa, mas está na hora de decidir. Sua organização possui centenas, talvez dezenas de máquinas que precisam migrar do Windows 2000 ou Windows XP para o Windows Vista. E quem tem que fazer isso é a sua equipe.
Por onde começo?
Se você vem instalando o sistema Windows® durante anos, provavelmente percebeu que poucas coisas mudaram do Windows NT® 3.5 para o Windows XP. O processo de instalação e configuração é consistente, as ferramentas são as mesmas e o processo em geral não foi alterado. Mas com o Windows Vista®, todo o processo foi redesenhado e existem várias ferramentas novas. Para uma boa visão geral das mudanças e como elas causarão impacto no seu negócio, veja o artigo "10 Coisas que Você Deve Saber sobre a Implantação do Windows Vista" da edição de novembro de 2006 da TechNet Magazine, também disponível online em technetmagazine.com/issues/2006/11/Deployment.

Como aprendo os novos processos e ferramentas?
Há duas opções:
  1. Aprender sobre cada nova ferramenta. Estudar toda a documentação disponível. Identifique como inserir cada uma delas em seu processo atual. Faça os ajustes necessários. Em seguida, valide os resultados.
  2. Aproveite algo que já tenha feito todas as outras coisas para você.
Com certeza, você escolheria a primeira opção, mas então isso seria um livro, não um artigo de revista. Sugiro escolher a segunda opção: O "algo" que você utilizará é o Business Desktop Deployment (BDD) 2007 Solution Accelerator, disponível para download pelo the Microsoft® Desktop Deployment Center em microsoft.com/desktopdeployment.
O BDD 2007 Solution Accelerator é um conjunto de ferramentas, orientações e passo-a-passo para simplificar o processo de implantação do sistema operacional Windows, juntando todos os processos da implantação e as ferramentas introduzidas com o Windows Vista.
Para começar o trabalho com o BDD 2007, identifique um computador que tenha Windows XP ou Windows Server® 2003. É nele que você fará a instalação, mas antes é necessário instalar o Microsoft .NET Framework 2.0 e o Microsoft Management Console (MMC) 3.0. Depois você pode instalar o BDD 2007 propriamente. Uma vez instalado, verifique as notas de versão disponíveis no folheto do BDD 2007, no menu Iniciar. Depois inicie o snap-in do MMC usando o atalho do Deployment Workbench (veja Figura 1).
Figura 1 Iniciando a Deployment Workbench do BDD 2007
Figura 1 Iniciando a Deployment Workbench do BDD 2007
A esta altura, seria uma boa idéia verificar a informação disponível na Central de Informação, especialmente a lista de verificação da Introdução e a documentação. Faça o download das últimas informações e da lista de componentes. Basta clicar com o botão direito do mouse em Componentes e escolher Verificar Atualizações.
Há um outro pré-requisito: o Kit De Instalação Automatizada do Windows (AIK, na sigla em inglês). O BDD 2007 precisa que as ferramentas sejam incluídas no AIK do Windows para diversas funções que exerce. Você pode obter o Windows AIK de duas formas: fazendo o download diretamente no Centro de Download da Microsoft em (go.microsoft.com/fwlink/?LinkId=85377) ou usando o nó "Componentes" no Deployment Workbench para fazer isso por você. De ambas as formas, trata-se de um download razoavelmente grande, então prepare-se que deve demorar um pouco.
Depois que o AIK do Windows estiver instalado, você pode avançar para a próxima fase: reunir todos os arquivos de que precisa para implantar o Windows Vista.

De que arquivos preciso?
A esta altura, você precisará reunir os arquivos de instalação do Windows Vista, os aplicativos que deseja instalar e os drivers necessários para o hardware, e quaisquer atualizações do Windows Vista e pacotes de idiomas que você desejar. Tudo será copiado para a estrutura do diretório de distribuição compartilhada, criada quando o BDD 2007 foi instalado.
Criar sua Própria Imagem Padrão
As etapas abordadas neste artigo descrevem como implantar as imagens padrão do Windows Vista diretamente do DVD de produto da Microsoft. Mas você pode querer implantar uma imagem customizada com aplicativos adicionais (como o Office 2007) que são importantes para os seus computadores. É o debate clássico: vale a pena manter uma imagem pequena e instalar tudo na hora da implantação ou você deveria criar uma imagem maior com toda a pré-instalação. Como sempre, a pergunta depende de fatores como o tempo disponível à implantação, esforço necessário para criar e manter a imagem, capacidade da rede e assim por diante. Na maioria das situações, é melhor manter imagens menores, mas a decisão é sua.
Indiferentemente do que você decidir incluir na imagem, certifique-se de que o processo de criação da imagem padrão é completamente automatizado. Com a automação, atualizar a imagem é tão simples quanto adicionar outra etapa ao processo, e assim também reexecutar o processo inteiro, capturando uma nova imagem no final.
Então, como você faria com o BDD 2007? Essa tarefa é mais ou menos simples.
  1. Crie uma compilação para desenvolver uma imagem padrão.
  2. Modifique a seqüência da tarefa para esta compilação para incluir todas as suas etapas padrão.
  3. Faça uma implantação “bare metal” a partir do ponto de implantação de laboratório (inicializando a partir do Windows PE ISSO), selecionando aquela compilação.
  4. Especifique se você deseja juntar-se a um grupo de trabalho.
Ao executar essas etapas, o assistente de implantação apresentará outro painel.
Ao escolher capturar uma imagem do computador de referência, o BDD 2007 executará automaticamente o Sysprep como preparação do sistema para captura, depois reinicializará o Windows PE e executará o ImageX.exe para capturar uma nova imagem WIM. Então você poderá importar aquela imagem para o Deployment Workbench e usá-la para a sua próxima implantação.
Capturar uma imagem de referência com o BDD 2007.
Capturar uma imagem de referência com o BDD 2007.

Primeiro, copie os arquivos de instalação do sistema operacional. Insira o DVD do Windows Vista (de preferência a mídia de licença de volume, porque não irá requerer uma chave de produto separada para cada instalação). Então inicie o Novo Assistente do Sistema Operacional, clicando com o botão direito do mouse em Sistema Operacional no Deployment Workbench e escolha o comando Novo. Selecione Conjunto Completo de Arquivos de Origem e especifique o caminho para o drive do DVD (ou o caminho apropriado, se você já tiver copiado esses arquivos para outro local). Complete as etapas do assistente, aceitando os padrões restantes. Agora você poderá ver uma ou mais imagens do Sistema Operacional (dependendo da mídia que estiver usando) na lista exibida ao clicar no nó do Sistema Operacional.
Aplicativos são os próximos. Você não precisa adicionar nenhum aplicativo por enquanto, mas se adicionar, poderá selecioná-lo a partir de uma lista ao implantar o Windows Vista. Preferencialmente, você desejaria especificar uma linha de comando para instalar o aplicativo sem interação com o usuário, pois você não quer ver ninguém esperando em volta pelo começo da instalação. Apenas para ver o que isso significa, tente adicionar um único aplicativo agora, escolhendo o comando novo no nó Aplicativos do Deployment Workbench, depois complete as etapas do Assistente de Novos Aplicativos (veja Figura 2).
Figura 2 Adicionar um aplicativo à bancada
Figura 2 Adicionar um aplicativo à bancada
Os próximos são pacotes do Sistema Operacional. Existem três tipos de pacotes em que você provavelmente está interessado: Pacotes de idioma, atualizações de segurança e componentes do Windows Vista.
Os pacotes de idioma habilitam o Windows Vista para operar em diferentes línguas. Para detalhes dos idiomas suportados, acesse microsoft.com/globaldev/vista/Vista_Language_Support.mspx. Os pacotes de idiomas, preparados como arquivos CAB, podem ser obtidos no licensing.microsoft.com para todos os clientes Software Assurance. Também estão disponíveis no Windows Update, caso você esteja usando o Windows Vista Ultimate. (Observe que apenas o Windows Vista Enterprise e o Windows Vista Ultimate suportam vários pacotes de idiomas instalados no computador.)
As atualizações de segurança do Windows Vista são geralmente lançadas mensalmente e estão disponíveis para download, como arquivos individuais MSU, pelo microsoft.com/technet/security/bulletinsandadvisories.
Você também pode incluir os novos componentes do Windows Vista, como o Windows PowerShell™. Estes componentes estão disponíveis para download no Centro de Download da Microsoft (microsoft.com/downloads) e também estão preparados como arquivos MSU.
Nos bastidores, tudo isso é, na verdade, componentes, também chamados pacotes, por isso são nós dos Pacotes do Sistema Operacional. Esses componentes podem ser introduzidos no Windows Vista, tanto online (enquanto o Sistema Operacional é executado) ou offline. No caso do BDD 2007, será sempre introduzido offline, depois que a imagem do Windows Vista tiver sido expandida e posicionada no disco, mas antes de ser inicializado pela primeira vez.
Há um desafio a mais: os arquivos MSU são desenvolvidos para ser instalados online, enquanto o Windows Vista é executado, usando o instalador de atualização WUSA.EXE. Neste exemplo, entretanto, você irá preferir instalar as atualizações offline. Para isso, você precisa dos arquivos CAB com os componentes reais. Bem, na verdade, esses arquivos MSU já são CAB, com o verdadeiro componente CAB dentro. Você mesmo pode extrair esses arquivos CAB dos arquivos MSU usando o seguinte comando:
EXTRACT.EXE file.msu -F:*.CAB C:\
Assim, você obteria o arquivo CAB que precisa importar. Observe que a Microsoft lançou um patch para o BDD 2007 que faz a extração automaticamente. Uma vez instalado, a etapa com o manual não é mais necessária. Você pode marcar o BDD 2007 nos arquivos MSU e ele cuidará do resto. Para mais detalhes deste patch, veja support.microsoft.com/kb/937191.
Para adicionar esses componentes ao Deployment Workbench, clique com o botão direito do mouse no nó do Pacote do Sistema Operacional e escolha Novo para iniciar o Assistente do Novo pacote. Especifique o caminho para uma pasta com os pacotes que você deseja adicionar.
Por último, você precisará de drivers para o hardware da máquina onde você pretende instalar o Windows Vista. Encontre os drivers de que você precisa nos sites de fornecedores ou no Microsoft Update, faça o download e depois extraia de onde eles estiverem. A última etapa pode ser um pouco confusa, mas no final você poderá ter os arquivos de driver em estado bruto: .inf, .sys, .dll e arquivos relacionados necessários para o driver, propriamente.
Quando você extrair os arquivos de driver, execute o Assistente de Novo Driver clicando com o botão direito no nó Drivers e escolhendo Nova Implantação. O Workbench examinará a estrutura do diretório procurando por todos os arquivos .inf. Então, não se preocupe em limpar as estruturas dos diretórios extraídos.
Assim que os drivers são importados, o Deployment Workbench cria um catálogo de todos os detalhes dos drivers, incluindo as plataformas suportadas, fabricante e versão, e a lista de IDs de Plug and Play suportados pelo driver.

O que é feito com esses drivers? Eu devo colocá-los na imagem do sistema operacional que importei antes?
O BDD 2007 não faz nenhuma modificação para as imagens do Sistema Operacional importadas. Em vez disso, os drivers são inseridos durante a implantação. O processo básico inclui:
  1. Você executa um utilitário (Microsoft.BDD.PnpEnum.exe) no computador que está recebendo a implantação, identificando todas os IDs de Plug and Play inseridos no computador.
  2. Pesquise cada um dos IDs de Plug and Play no catálogo de driver. Para cada combinação encontrada, copie os arquivos de driver necessários para o computador.
  3. Configure a instalação do Windows Vista para inserir os drivers no Sistema Operacional depois que a imagem tiver sido aplicada ao disco, mas antes que o Windows Vista se inicie pela primeira vez. Esse comando é essencial porque esses drivers, como os drivers de armazenamento maciço, podem ser necessários para que o sistema operacional inicie.

Já estou pronto para fazer a implantação?
Só mais algumas etapas antes que você possa implantar o Windows Vista. Primeiro, você precisa definir uma compilação que associe um sistema operacional ao compartilhamento de distribuição com as configurações que devem ser usadas e a seqüência de tarefas que precisam ser executadas para realizar a instalação e a configuração do sistema operacional.
Para criar essa compilação, clique com o botão direito do mouse no nó Compilações e escolha Novo para iniciar o Assistente de Nova Compilação. Especifique um ID de compilação (um valor simples, à sua escolha, sem espaços ou caracteres especiais) junto com um nome e uma descrição. Ambos serão visualizados durante a implantação do sistema operacional (ver Figura 3). Depois selecione o sistema operacional que deseja instalar e especifique algumas configurações básicas de uso.
Figura 3 Especificar informações básicas de compilação
Figura 3 Especificar informações básicas de compilação

E agora, já estamos prontos para implantar?
Há um outro pré-requisito: um ponto de implantação. Simplificando, isso é um compartilhamento de rede com todos os arquivos que você reuniu até agora, todos os detalhes de compilações e as imagens do Windows PE usadas para a implantação. Criar um ponto de implantação funciona como as outras etapas que você já viu até agora: clique com o botão direito do mouse no nó Pontos de Implantação e escolha Novo. Selecione Lab ou implantação de servidor único (ver Figura 4) e aceite os padrões restantes.
Figura 4 Escolha do tipo de ponto de implantação
Figura 4 Escolha do tipo de ponto de implantação
Ao terminar o assistente, clique com o botão direito do mouse no novo ponto de implantação no painel da lista e escolha Atualizar para gerar o compartilhamento e as imagens do Windows PE.
Lembra dos drivers que você adicionou antes? Aqueles mesmos drivers, pelo menos os de rede e armazenamento maciço, também são necessários para o Windows PE, então o processo de atualização irá adicionar os drivers automaticamente à imagem do Windows PE.

Já estamos prontos para implantar?
Sim! Primeiro, vamos tentar implantar em um computador novo: Pegue o arquivo LiteTouchPE_x86.iso na pasta \distribution\boot e grave-o num CD-R usando seu software de gravação de CD preferido, ou use a ferramenta cdburn.exe, que você pode obter na Microsoft em (go.microsoft.com/fwlink/?LinkID=77796). Inicialize um computador a partir do CD, que iniciará o Windows PE e exibirá o assistente de boas-vindas mostrado na Figura 5.
Figura 5 Pronto para iniciar a implantação
Figura 5 Pronto para iniciar a implantação
Escolha Executar o Assistente de Implantação e clique Avançar para iniciar o processo. Dali você pode selecionar a compilação definida, qualquer aplicativo adicionado e qualquer pacote de idioma importado. Você também pode escolher juntar-se a um domínio, especificar o nome do computador e definir várias outras configurações. Você pode até especificar que deseja capturar automaticamente uma nova imagem personalizada (usando Sysprep, Windows PE e Image X para criar um novo arquivo de imagem).
A implantação pode demorar um pouco (dependendo da velocidade e do tipo de computador), mas não precisará de nenhuma intervenção do usuário. Quando o assistente de implantação estiver concluído, uma tela de resumo será exibida para que você se informe sobre qualquer alerta ou log de erro durante o processo. Isso permite que você verifique rapidamente que a implantação foi bem sucedida — uma tela de resumo amarela ou vermelha significa que você deve ter mais atenção, enquanto a tela branca indica que estava tudo OK.
Agora tente em uma máquina que já estava rodando Windows XP. A partir de um prompt de comando, mapeie um drive para o compartilhamento Distribution$ criado em seu servidor BDD 2007, depois execute o LiteTouch.vbs para iniciar a implantação.
NET USE M: \\MyServer\Distribution$
cscript.exe M:\Scripts\LiteTouch.vbs
Esse procedimento iniciará o mesmo assistente de implantação visato anteriormente, exceto agora, com algumas novas escolhas (ver Figura 6).
Figura 6 Escolhas para um computador rodando Windows XP.
Figura 6 Escolhas para um computador rodando Windows XP.
Se você escolher Atualizar este computador, o Sistema Operacional será removido (depois de, opcionalmente, capturar os dados de usuário e as configurações usando a Ferramenta de Migração de Estado de Usuário, que deve ser obtida por download usando o nó Componentes, conforme feito anteriormente com o Windows AIK), e uma nova instalação do Windows Vista será feita. Você também pode escolher Atualizar este computador, que permite que a instalação do Windows Vista tome conta de atualizar o Sistema Operacional atual, preservando os aplicativos existentes, dados e configurações do computador. A opção que você escolhe depende de vários fatores, embora a maioria escolha fazer uma atualização para começar a trabalhar com um perfil novo e conhecido.

Então, é tudo de que preciso saber?
E quanto ao Windows XP?
E se você ainda estiver implantando o Windows XP? Não se preocupe, você ainda pode usar o BDD 2007 para ajudá-lo no processo. Repetem-se as mesmas etapas; use os arquivos de instalação do Windows XP para criar a compilação inicial, capture uma nova imagem do Windows XP (WIM) — implantar uma image do Windows XP é muito mais rápido do que fazer uma instalação desassistida — depois use o arquivo WIM para suas implantações seguintes.
Lembre-se de que, em comparação com as implantações do Windows Vista, há algumas complicações extras na implantação do Windows XP:
Os drivers de armazenamento maciço do Windows XP requerem configuração extra, assim como as pastas TEXTMODE, configurações unattend.txt e sysprep.inf. Com certeza, uma vez que os drivers de armazenamento maciço não podem ser introduzidos em imagens existentes do Windows XP, você precisa capturar uma nova imagem a cada vez que precisar adicionar um driver de armazenamento maciço. Além disso, as imagens do Windows XP não são independentes de HAL. Assim, você precisa ter três imagens separadas. Finalmente, os pacotes de idioma e as atualizações de segurança não podem ser inseridos off-line no Windows XP; devem ser instalados depois que o Windows XP estiver rodando normalmente.
Se você usa o BDD 2007 para a implantar o Windows XP, já estará totalmente preparado para o Windows Vista, quando decidir que é a hora.

Não, isso é apenas en passant. Mas ver o processo trabalhando de ponta a ponta permite que você veja todas as novas ferramentas operando juntas, sem demandar que você aprenda cada uma delas. Agora você pode pesquisar nos scripts e logs do BDD 2007 para verificar o que foi processado. Você pode compilar suas próprias imagens personalizadas e adicioná-las no BDD 2007 para implantar no lugar da imagem padrão do Windows Vista. Você pode carregar sua imagem em DVDs ou pen drives USB. Você pode integrar ao processo o SMS 2003 e seu respectivo Pacote de Recursos de Implantação do Sistema Operacional.

Onde posso encontrar mais informações?
Verifique todos aqueles documentos que deixamos de lado antes — tem certamente mais de mil páginas disponíveis, divididas entre as equipes envolvidas em um projeto de implantação. Também verifique o site microsoft.com/desktopdeployment mencionado anteriormente. Use o grupo de notícias microsoft.public.deployment.desktop, onde profissionais de TI, como você, fazem todo tipo de pergunta sobre implantação do Windows. Verifique também sites de terceiros como o deployvista.com e o myitforum.com, onde há informações ricas sobre BDD 2007 e implantação do Windows Vista. Cheque o livro Windows Vista Resource Kit (microsoft.com/mspress/books/9536.aspx), disponibilizado pela Microsoft Press. Leia meu blog em blogs.technet.com/mniehaus para discussões sobre vários elementos do BDD 2007. Converse com os representantes da Microsoft na sua região sobre seminários e treinamentos de BDD 2007 e Windows Vista, disponíveis em sua área. Finalmente, consulte os links na barra lateral "Recursos de Implantação" para mais informações.
E se você possuir Software Assurance para o Microsoft Office, certifique-se de aproveitar os Serviços de Planejemento de Implantação para Desktop (microsoft.com/licensing/sa/benefits/deployment.mspx) para que a Microsoft ou um parceiro dela passe alguns dias trabalhando com você para traçar um planejamento e até mesmo trabalhar em um laboratório de prova de conceito no local.
Recursos de implantação
  • Microsoft Desktop Deployment Center microsoft.com/desktopdeployment
  • 10 Coisas que Você Deve Saber sobre a Implantação do Windows Vista technetmagazine.com/issues/2006/11/Deployment
  • Microsoft .NET Framework 2.0 go.microsoft.com/fwlink/?LinkId=94601
  • Microsoft Management Console (MMC) 3.0 para Windows Server 2003 x86 go.microsoft.com/fwlink/?LinkId=94602
  • Alertas e Informativos de Segurança microsoft.com/technet/security/bulletinsandadvisories

Michael Niehaus é Engenheiro de Desenvolvimento de Sistemas na equipe de Solution Accelerators da Microsoft. Ele é responsável por desenvolver práticas recomendadas, ferramentas e scripts para o Business Desktop Deployment. Contate-o em michael.niehaus@microsoft.com.
© 2007 Microsoft Corporation e CMP Media, LLC. Todos os direitos reservados. A reprodução parcial ou completa sem autorização é proibida..


 Windows Vista: Uma Guia para as Tecnologias de Backup do Windows Vista
Windows Vista Christine Fok

Uma Guia para as Tecnologias de Backup do Windows Vista
Visão geral:
  • Backup e restauração de arquivos
  • Backup e Restauração do Windows Complete PC
  • Restauração do Sistema
  • Cópia de Sombra

Muitas pessoas não pensam em fazer backup de seus dados até que seja muito tarde e os dados já tenham sido perdidos. Isso não deveria acontecer nunca, mas infelizmente acontece. O objetivo do Windows Vista é facilitar o backup, com uma variedade completa de recursos para proteger os seus dados de forma direta.
A conhecida Restauração do Sistema foi recriada para ser mais robusta e para oferecer suporte a mais cenários de reparo do sistema. O Backup do Arquivo foi aperfeiçoado para tornar a proteção dos dados mais simples e completa e dois novos recursos, o Backup e Restauração do Windows ® Complete PC e a Cópia de Sombra, foram adicionados.
Todos esses recursos se baseiam no Serviço de Cópias de Sombra de Volume de uma forma ou de outra. Ele é um serviço que cria cópias do estado atual (conhecidas como "cópias de sombra") de um volume e controla as alterações feitas entre elas.
Embora esses quatro recursos, todos eles disponíveis no novo Centro de Backup e Restauração (consulte a Figura 1), permitam que você faça o backup e a restauração de seus dados, cada um é muito diferente do outro. Mas, juntos, eles oferecem uma ampla proteção contra várias formas de perda de dados por todo o tempo de vida do seu computador.
Figura 1 Centro de Backup e Restauração do Windows Vista
Figura 1 Centro de Backup e Restauração do Windows Vista

Backup de arquivos
Agendando um Backup do Complete PC
Agendar um Backup do Complete PC regularmente é uma forma de garantir a existência de imagens recentes de todo o seu computador. O Backup do Complete PC não pode ser agendado por meio do painel de controle, mas você pode contornar isso criando uma nova tarefa no Agendador de Tarefas. Se você optar por agendar Backups do Complete PC, eu aconselho o monitoramento periódico para verificar se os backups foram concluídos com êxito. Por que isso é necessário? Porque esse método não exibirá um pop-up avisando que o backup falhou devido à falta de espaço em disco ou a outros problemas temporários. Ele não deve ser considerado como um substituto da utilização regular do Backup do Arquivo. Isso posto, veja como você pode usar o Agendador de Tarefas para agendar um Backup do Complete PC:
  1. Vá para o Agendador de Tarefas (que pode ser encontrado em Acessórios\Ferramentas do Sistema, na parte Todos os Programas do seu menu Iniciar).
  2. Clique em Criar Tarefa.
  3. Vá para a guia Geral.
  4. Digite um nome descritivo, como Backup do Complete PC Agendado.
  5. Se quiser que a tarefa seja executada mesmo quando você não estiver conectado, clique em Executar estando o usuário conectado ou não.
  6. Clique em Executar com privilégios mais altos.
  7. Vá para a página Disparadores.
  8. Clique em Novo e especifique quando e com que freqüência o backup agendado será executado.
  9. Vá para a página Ações.
  10. Clique em Novo.
  11. Em Programa/Script, digite wbadmin.
  12. Em Adicione argumentos (opcional), digite o comando a seguir, ajustando a letra da unidade de destino, se necessário:
    Start backup –allcritical –backupTarget:D: -quiet
    Se quiser incluir volumes adicionais que não sejam o do sistema, o de inicialização ou o do Ambiente de Recuperação do Windows, utilize a instrução a seguir, substituindo E e F pelas letras das unidades apropriadas (separadas por vírgulas):
    Start backup –allcritical –backupTarget:D: -include:E:,F: -quiet
    Observe que o comando sempre deverá incluir o sinalizador allcritical. Ao não incluí-lo, você corre o risco de excluir volumes do sistema importantes do backup, o que poderia levar a uma falha durante a restauração.
  13. Defina qualquer outra configuração relacionada à tarefa.
  14. Clique em OK.

Suponha que eu tenha comprado um novo laptop. Depois de copiar diversos arquivos — fotos, documentos do Microsoft® Word e assim por diante — para o meu sistema, instalar os aplicativos e baixar as últimas atualizações da Microsoft, eu decido fazer um backup de arquivos. Dessa forma, conecto um disco rígido externo ao laptop e vou até o Centro de Backup e Restauração. Quando eu clico no botão Fazer backup de arquivos, vejo um assistente que me guiará pela configuração. Ele solicita o destino do backup (nesse caso, o disco rígido externo), pergunta quais são as categorias de arquivos que devem ser incluídas no backup (como Imagens) e quando deverá executar o backup.
O Backup do Arquivo utiliza uma abordagem baseada em categorias para especificar os arquivos que devem ser incluídos no backup. Embora a origem tenha de ser NTFS, o disco rígido de destino pode ser formatado com NTFS ou FAT. O ato de determinar se um arquivo está associado a uma determinada categoria se baseia em três fatores: tipo de MIME, a associação do aplicativo e a extensão de arquivo.
Se você quiser fazer backup de arquivos que não se ajustem a qualquer outra categoria, escolha a categoria Arquivos adicionais. Ela inclui arquivos com extensões não reconhecidas pelo Windows. No entanto, ela não oferece suporte a arquivos executáveis e de sistema. Tais arquivos não são incluídos no backup por esse recurso porque raramente representam dados do usuário. Se você realmente quiser fazer backup de arquivos do sistema e de executáveis usando esse mecanismo, coloque-os em um arquivo .zip e selecione a categoria Arquivos compactados no assistente.
Como essa é a primeira vez que utilizo os recursos de backup do meu laptop, um backup completo — ou seja, um backup completo de todos os arquivos das categorias selecionadas — será imediatamente executado. A partir de então, serão executados somente backups incrementais. O termo incremental no contexto do Backup do Arquivo refere-se a controlar somente os arquivos novos ou atualizados. Por exemplo, se você tiver um documento do Word antigo e fizer alguma alteração nele, a ferramenta Backup do Arquivo manteria cópias completas do documento antigo e do atualizado (a coleção de um único backup completo e da seqüência de backups incrementais criada a partir dele é conhecida como um conjunto de backup).
Em vez de executar backups incrementais para sempre, execute alguns backups completos ocasionalmente. Os motivos para isso se baseiam em fatores como o tempo desde o seu último backup completo, quantos arquivos você está incluindo no backup, quantos CDs ou DVDs contêm os backups e assim por diante. Faça isso para garantir que um backup de linha de base completo esteja sempre disponível.
Os dados incluídos no backup são armazenados como arquivos .zip (com o tamanho máximo de 200 MB cada um). Isso faz com que eles fiquem mais acessíveis. Por exemplo, é possível restaurar os dados em uma máquina que não esteja executando o Windows Vista ao navegar diretamente na mídia de backup. Os dados do backup são armazenados em arquivos separados em pode ser estendidos por vários discos. Se um disco falhar, os dados do backup de outra mídia ainda estarão acessíveis.
No Backup do Arquivo, o Serviço de Cópias de Sombra de Volume é usado na criação de cópias consistentes de arquivos que estejam abertos ou em uso. Durante o processo de backup, o aplicativo de backup lê essas cópias consistentes. Isso será conveniente, por exemplo, quando estivermos fazendo backup de um arquivo .pst sempre aberto pelo Microsoft Outlook®. O Serviço de Cópias de Sombra de Volume garante que o arquivo .pst incluído no backup esteja em um estado consistente para poder ser acessado na restauração.
Os backups de arquivo não são excluídos automaticamente. No entanto, você pode excluí-los manualmente se estiver com pouco espaço. Um conselho: sempre exclua um conjunto de backup inteiro em vez de apagar backups incrementais individuais.
Por outro lado, alerto que é preciso evitar copiar um backup de arquivos para um local diferente. Se isso for realmente necessário, tenha em mente que só irá funcionar se você mover uma única mídia de backup original para outra mídia de destino única. Por exemplo, você pode copiar dados de backup de um CD para um DVD, mas não pode copiá-los de vários CDs para um DVD. Quando um backup é movido, é preciso copiar a pasta de backup com o nome do seu computador e o arquivo mediaid.bin, ambos localizados na raiz da mídia de backup. Observe que, se você quiser restaurar um arquivo que foi movido, deverá selecionar a Restauração avançada | Restaura arquivos de um backup feito em outro computador no painel de controle do backup para chegar até esses arquivos, já que o catálogo de backup do computador não saberá qual é a nova localização do backup.

Backup do Complete PC
Após a conclusão da configuração do meu novo laptop, quero fazer um backup completo para proteger tudo, incluindo o sistema operacional, os aplicativos instalados, as configurações e as atualizações. Usarei o recurso Backup do Complete PC, que poderá ser usado na recuperação da minha máquina no caso de uma falha do disco rígido ou de outro desastre. Não precisarei reinstalar todos os aplicativos individualmente e refazer todas as minhas configurações. Na primeira execução, esse recurso executa um backup completo de todos os blocos dos volumes selecionados, menos dos blocos que não possuem informações armazenadas. Os backups subseqüentes serão diferenciais em nível de bloco (mostrarei mais detalhes sobre isso em instantes).
Depois de executar os backups, o painel de controle do Centro de Backup e Restauração será atualizado (consulte a Figura 2). Ele passará a oferecer informações como quando o backup foi executado e onde foi armazenado.
Figura 2 O Centro de Backup e Restauração mostra detalhes sobre os backups anteriores
Figura 2 O Centro de Backup e Restauração mostra detalhes sobre os backups anteriores
Embora ambos executem backups, o Backup do Complete PC funciona de uma forma totalmente diferente do Backup do Arquivo. O Backup do Complete PC cria um backup da imagem em nível de bloco de todo o computador em um formato de unidade de disco virtual (.vhd). Durante o primeiro backup completo, o mecanismo pesquisa o disco de origem e copia blocos que contêm dados para o arquivo .vhd armazenado no disco de destino. Embora os dados incluídos no backup não sejam compactados, o backup será.
Na próxima vez em que o Backup do Complete PC for executado, somente os dados novos e alterados serão gravados no arquivo .vhd e os dados antigos do mesmo bloco serão movidos para a área de armazenamento de cópia de sombra. O Serviço de Cópias de Sombra de Volume é usado para computar as diferenças entre os instantâneos tirados assim como para manipular o processo de mover os dados antigos para a área de cópia de sombra no disco de destino (consulte a Figura 3). Essa abordagem faz com que o backup seja mais rápido (já que somente os blocos alterados serão copiados) e mais eficiente (já que os dados serão armazenados de uma forma compactada). Observe que o aplicativo de backup define a quantidade máxima de espaço de armazenamento de cópia de sombra disponível no disco de destino. Para um procedimento passo a passo sobre a utilização do sistema Backup do Complete PC regular ou automaticamente, consulte a barra lateral "Agendando um Backup do Complete PC".
Figura 3 Como os dados são movidos em um Backup e Restauração do Windows Complete PC
Figura 3 Como os dados são movidos em um Backup e Restauração do Windows Complete PC
Durante a restauração dos dados, os blocos são recolocados em seu local de origem. Se você quiser restaurar um backup antigo, o mecanismo fará uma leitura da área de cópia de sombra e fará a restauração dos blocos apropriados.
Observe que o Backup do Complete PC só pode fazer backup dos discos formatados com NTFS. Se o destino do backup for um disco rígido, ele também terá de estar formatado com NTFS.

Restauração do Sistema
A Restauração do Sistema está habilitada por padrão. Eu acesso o Assistente para Restauração do Sistema ao escolher Reparar o Windows usando a Restauração do Sistema, disponível no canto superior esquerdo do Centro de Backup e Restauração (ele também pode ser encontrado na pasta Acessórios\Ferramentas do Sistema, na parte Todos os Programas do seu menu Iniciar). Se eu selecionar "escolher um outro ponto de restauração" e clicar em Avançar, verei os pontos de restauração já criados em vários pontos durante a configuração do meu laptop, a instalação de aplicativos e a execução de backups.
Os pontos de restauração são ativados por padrão somente no volume de inicialização, mesmo em um sistema onde haja um disco rígido com vários volumes. Os pontos de restauração são criados automaticamente durante as instalações de aplicativos e de drivers e todos os dias nos volumes selecionados (se um ponto de restauração não tiver sido usado naquele dia). Os pontos de restauração também podem ser criados manualmente pela escolha da opção Proteção do Sistema no miniaplicativo Sistema do painel de controle. As cópias de sombra criadas durante o Backup do Arquivo e o Backup do Complete PC também são usadas como pontos de restauração.
No Windows XP, a Restauração do Sistema utiliza um filtro de sistema de arquivos para controlar as mudanças de arquivos do sistema. No Windows Vista, a Restauração do Sistema usa o Serviço de Cópias de Sombra de Volume para controlar as alterações em nível de bloco nos volumes selecionados. Isso faz com que a Restauração do Sistema seja mais robusta e permite que ela ofereça suporte a uma variedade maior de cenários de reparo.
A novidade é que a Restauração do Sistema agora pode ser executada enquanto a sua instalação do Windows regular estiver offline. Isso é feito por meio do Ambiente de Recuperação do Windows, permitindo que você repare o seu sistema mesmo se não for possível inicializar o Windows.

Cópia de Sombra
A Cópia de Sombra é quase invisível. Ela é habilitado por padrão e não exige uma entrada do usuário. Se o usuário algum dia precisar restaurar um arquivo, é provável que esse seja o seu primeiro contato com esse recurso. Essencialmente, ele expõe as cópias do estado atual dos arquivos criados pelo Serviço de Cópias de Sombra de Volume.

Gerenciamento do espaço de cópia de sombra
Existem espaços de armazenamento destinados às cópias de sombra tanto nos volumes ativos como no disco de backup para o Backup do Complete PC. Você pode verificar os valores usado, alocado e máximo do espaço de armazenamento da cópia de sombra ao executar o comando a seguir em um prompt de comando elevado:
VSSAdmin list ShadowStorage
Usado indica o espaço ocupado no momento pelas cópias de sombra; alocado indica o espaço reservado para cópias de sombra (e, portanto, não pode ser usado para outra finalidade); máximo é o limite de tamanho das cópias de sombra.
A alocação de espaço para cópias de sombra é automática, o que significa que não poderá ser definida pelo usuário. O novo espaço é alocado em incrementos fixos sempre que o espaço previamente alocado estiver cheio. É por isso que o valor mostrado para o espaço usado será sempre menor do que o valor visto para o espaço alocado.
Para o volume ativo, o espaço máximo permitido para o armazenamento de cópias de sombra será determinado quando a primeira cópia de sombra for criada — normalmente quando a Restauração do Sistema for habilitada pela primeira vez e um ponto de restauração for criado durante a configuração. O valor será definido como 30 por cento do espaço livre ou 15 por centro do tamanho total do volume — o que for menor. Esse tamanho máximo é estático. Ele não mudará quando houver mais ou menos espaço livre, nem depois que o tamanho do volume for ajustado.
No entanto, você pode ajustar o tamanho dessa área de armazenamento manualmente, usando a ferramenta VSSAdmin em um prompt de comando elevado. Por exemplo, o comando para aumentar o tamanho máximo de armazenamento para 15 GB na unidade C:\ seria:
VSSAdmin Resize ShadowStorage /For=C: /On=C: /MaxSize=15GB
Essa ferramenta surgiu no Windows Server®, onde as cópias de sombra de um determinado volume podiam ser mantidas em outro. No Windows Vista, as cópias de sombra de um volume são mantidas no mesmo volume. Dessa forma, o "do" e o "no" volume devem ser iguais.
O disco de destino do backup para o Backup do Complete PC, por outro lado, possui um tamanho máximo de armazenamento de cópia de sombra de 30 por cento do espaço em disco. Esse valor é controlado pelo Backup do Complete PC e não pode ser alterado manualmente. Esse espaço de armazenamento de cópia de sombra é usado para guardar backups incrementais do Backup do Complete PC.
Até 64 cópias de sombra podem ser mantidas em um volume em qualquer ocasião, desde que haja espaço na área de armazenamento de cópia de sombra. Quando o limite máximo de espaço for atingido, as cópias mais antigas serão excluídas para dar espaço para as novas. Portanto, pontos de restauração antigos para a Restauração do Sistema serão excluídos quando o limite do armazenamento de cópia de sombra for atingido no volume ativo e os Backups do Complete PC antigos serão excluídos quando o limite for atingido no disco de backup. Além disso, o armazenamento e a edição de outros dados no disco de backup poderão interferir no processo normal da duração de backups antigos, fazendo com que eles sejam excluídos de forma acelerada.

Restaurar um arquivo com a cópia de sombra
Agora imagine que já tenho o meu laptop há algum tempo e que o tenho utilizado para criar algumas apresentações. Terminei as apresentações e as passei para meus clientes. Um mês depois, já tenho novos projetos e decidi excluir esses arquivos. Então meu gerente me pede uma cópia das apresentações antigas. É aqui que a Cópia de Sombra se mostra realmente útil.
Existem duas formas de procurar por cópias de arquivos excluídos. Primeiro, se eu souber onde o arquivo estava armazenado, posso simplesmente clicar com o botão direito do mouse na pasta que o continha e selecionar "Restaurar versões anteriores". A partir daí, escolho uma data que contenha a versão desejada do arquivo excluído (consulte a Figura 4), clico em abrir e copio o arquivo de destino para outro local do volume ativo. Essa operação de cópia é tão rápida como uma cópia de arquivo normal.
Figura 4 Restaurando um arquivo que foi excluído
Figura 4 Restaurando um arquivo que foi excluído
Se você esqueceu em que local o arquivo estava armazenado, poderá abrir a versão anterior da pasta pai mais próxima na árvore de arquivos e fazer uma pesquisa a partir dali. Por exemplo, se eu esquecer qual é a pasta específica mas souber que ele estava em alguma subpasta localizada em Documentos, posso pesquisar a versão anterior de Documentos digitando o nome do arquivo (completo ou parcial) na caixa de pesquisa no canto superior direito da janela do Windows Explorer, como mostrado na Figura 5. Observe que a funcionalidade de pesquisa de cópias de sombra não funciona na pasta raiz. E já que as cópias de sombra não são indexadas, o tempo de pesquisa pode ser maior do que a pesquisa em um volume ativo.
Figura 5 Pesquisando a versão anterior de um documento ao digitar o nome parcial do arquivo
Figura 5 Pesquisando a versão anterior de um documento ao digitar o nome parcial do arquivo

Restaurar arquivo de um backup
As cópias de sombra não ficam disponíveis para sempre, uma vez que são removidas de vez em quando por causa do espaço disponível. Se eu precisar de um arquivo que não esteja mais disponível por meio desse método, poderei recorrer aos meus backups de arquivo agendados. Eu simplesmente seleciono Restaurar arquivos no Centro de Backup e Restauração e escolho uma data de backup que contenha a apresentação excluída. Quando eu clico no botão Adicionar arquivos, é aberta uma caixa de diálogo que me permite navegar pelo backup. Depois de selecionar o arquivo que estou procurando, tenho a opção de restaurá-lo para o mesmo local ou para um local diferente.
Vale a pena observar que a opção Restaurar arquivos só mostra os backups contidos no último conjunto de backup. Para exibir os backups de um conjunto mais antigo, selecione Restauração avançada e a opção Arquivos de um backup mais antigo feito neste computador. Na rara ocasião em que você não puder encontrar um conjunto de backup antigo usando essa opção, selecione Restauração avançada e a opção Arquivos de um backup mais antigo feito em outro computador. Isso pode acontecer porque o catálogo de backup do computador é ajustado quando fica muito grande.

Restaurar um arquivo de um Backup do Complete PC
Para sermos precisos, devo mencionar que um Backup do Complete PC pode ser usado na restauração de arquivos individuais. Embora tenha sido criado para a restauração em nível de volume, o Backup do Complete PC armazena dados em um formato .vhd e isso significa que você pode usar a ferramenta de montagem VHD offline para acessar e restaurar arquivos individuais (no momento em que eu escrevia este artigo, a ferramenta de montagem VHD só podia ser obtida como parte do Microsoft Virtual Server 2005 R2 SP1, que pode ser baixado do site microsoft.com/technet/prodtechnol/eval/virtualserver). Para montar o backup, abra um prompt de comando com privilégios elevados e navegue até Microsoft Virtual Server\Vhdmount. O comando é:
vhdmount /m [path of the .vhd file] [drive letter to assign to the virtual hard drive]
Quando estiver fazendo isso pela primeira vez, o sistema poderá não escolher o driver exigido por ele não estar assinado. Isso irá gerar uma mensagem de erro dizendo que o driver de dispositivo não pôde ser carregado. Para resolver esse problema, depois de montar o arquivo .vhd usando o comando anterior, vá para o Gerenciador de Dispositivos, clique com o botão direito no novo dispositivo exibido e selecione Properties. A partir daí, vá para a guia Driver, selecione Atualizar Driver, clique em Procurar software de driver no computador e selecione Permitir que eu escolha em uma lista de drivers de dispositivo no computador. O arquivo de driver correto fica em Microsoft Virtual Server\Vhdmount\vhdstor.inf. Depois da instalação, a nova unidade será exibida e você será capaz de navegar pelo Backup do Complete PC e de copiar os arquivos desejados para um local alternativo.

Restauração do Complete PC
Agora imagine que, em uma tarde ensolarada, eu decido usar o meu laptop ao lado da piscina. Escorrego no chão molhado e meu laptop mergulha na piscina. Ele não tem mais conserto e não tenho outra opção senão comprar um novo. E já que eu usei a ferramenta Backup do Complete PC, posso restaurar o sistema em meu novo laptop — não vou precisar passar um tempo enorme reinstalando manualmente cada aplicativo e redefinindo-os com minhas configurações pessoais. Executar uma Restauração do Complete PC é simples. Na inicialização, eu utilizo o disco de instalação do Windows Vista para entrar no Ambiente de Recuperação do Windows. Ali, será solicitado que eu conecte o dispositivo que contém a imagem do sistema. Escolho a imagem apropriada para iniciar o processo de restauração.
Após a conclusão da restauração, executo uma restauração de arquivo do meu último backup de arquivos. Isso porque faço backups de arquivos com mais freqüência e, portanto, os dados contidos neles são mais atuais. Uma vez que o computador foi revertido a uma hora anterior ao backup de arquivos, ele não contém um registro desse backup no catálogo. Sendo assim, seleciono Restauração avançada | Restaura arquivos de um backup feito em outro computador | Restaurar todo o conteúdo do backup. Eu também inicio um novo backup completo para proteger meus dados recém-restaurados.
Com freqüência, o Ambiente de Recuperação do Windows é instalado pelo OEM no disco rígido como uma partição oculta. Ele pode ser usado na restauração da imagem do Backup do Complete PC para o mesmo hardware. Mas se você precisar restaurar uma imagem criada de um computador em outro, terá de executar o Ambiente de Restauração do Windows a partir de uma mídia externa, como o seu disco de instalação do Windows.
Existem algumas condições que devemos considerar. A Restauração do Complete PC só funcionará quando a restauração for feita para o mesmo hardware em que foi feito o backup (desde que, é claro, a falha desse hardware não tenha sido parte do seu problema).
Uma vez que o Backup do Complete PC inclui uma imagem de todo o computador, existem algumas restrições quando a restauração é feita em um hardware diferente. Primeiro, a imagem do backup contém drivers usados na inicialização da máquina após a conclusão da restauração. Em casos raros, os drivers necessários para a inicialização da nova máquina podem não estar presentes. Isso poderia acontecer durante a restauração de um backup de imagem feito em um tipo de controladora de disco (IDE, SATA ou SCSI) para outro tipo de controladora. Mesmo nesse caso, ainda há uma boa chance de você conseguir completar a restauração com êxito, já que os drivers comuns do Windows incluídos no backup da imagem provavelmente são compatíveis.
Segundo, a restauração só poderá ser executada se o novo computador tiver pelo menos o mesmo número de discos rígidos e se cada um deles tiver pelo menos o mesmo tamanho do original que está sendo substituído. Mantenha essas restrições em mente caso pretenda usar o Backup do Complete PC em uma migração para um novo hardware.
Já que o backup e a restauração são executados em um nível de bloco para volumes completos, a Restauração do Complete PC requer que um volume seja totalmente restaurado ou ignorado. Portanto, talvez seja melhor criar vários volumes no backup (por exemplo, separando os arquivos do sistema dos arquivos de dados). Então, quando estiver restaurando, você poderá optar entre restaurar somente o volume do sistema (identificado como crítico) ou todos os volumes.

Colocando estes recursos em prática
O Windows Vista apresenta melhoras significativas em relação ao Windows XP nos quesitos proteção de seus dados e do sistema ao apresentar novas tecnologias de backup e ao aperfeiçoar as existentes. Os quatro recursos principais de backup — Backup e Restauração de Arquivos, Backup e Restauração do Windows Complete PC, Restauração do Sistema e Cópia de Sombra — oferecem habilidades diferentes, embora complementares, formando uma ampla rede de proteção de dados. É importante compreender como esses recursos funcionam juntos, para garantir que o seu sistema esteja configurado para utilizar todos os quatro métodos e para ser possível aplicar a proteção e as correções adequadas de acordo com a situação.
Como uma boa regra geral, sempre tente a restauração da Cópia de Sombra primeiro em uma situação de perda de dados, já que é provável que esse método tenha a cópia mais atualizada de seus dados. Para instabilidade e reparo do sistema, use a Restauração do Sistema. A Restauração do Complete PC geralmente deve ser usada como um último recurso para um reparo completo do sistema e deve ser usada com precaução. No entanto, a Restauração do Complete PC pode salvar a sua vida. E, o mais importante, tome alguma atitude antes que seja muito tarde: faça backup agora!
Gostaria de agradecer a Eduardo Laureano, Ivan Pashov, Jill Zoeller e a todos os membros da equipe de backup e restauração de produtos pelo auxílio neste artigo.

Christine Fok é gerente de programa da Storage Solution Division (divisão de soluções de armazenamento) da Microsoft. Ela se concentra em experiências de backup e de restauração na plataforma de clientes do Windows.


 Windows Server: Onze ferramentas essenciais para gerenciar o Active Directory
Windows Server Laura E. Hunter

Onze ferramentas essenciais para gerenciar o Active Directory
Visão geral:
  • Criando objetos na linha de comando
  • Executando operações em massa dentro do Active Directory
  • Atualizações e manutenções do Active Directory

Caso você já tenha recebido uma planilha do Excel listando 200 novos funcionários que começam na semana seguinte ou caso as suas contas de usuário tenham sido configuradas incorretamente porque a equipe do suporte técnico clicou em algo
que não deveria, ou caso você apenas queira uma forma mais simples de gerenciar o Active Directory® do que sempre abrir Usuários e Computadores, há algumas ferramentas de administração gratuitas que podem ajudar. Algumas são criadas diretamente no SO Windows®, algumas vêm em um Resource Kit ou Ferramentas de Suporte do Windows e outras são ferramentas gratuitas de terceiros. Quais são essas ferramentas úteis e onde é possível obtê-las? Vamos descobrir.
Começarei pelas ferramentas de linha de comando internas do Windows Server® 2003 que lhe permitem criar, excluir, modificar e procurar objetos no Active Directory.

CSVDE
A ferramenta Comma-Separated Values Data Exchange, conhecida como CSVDE, permite que você importe novos objetos para o Active Directory usando um arquivo de origem CSV; ela também possibilita a exportação de objetos existentes para um arquivo CSV. A CSVDE não pode ser usada para modificar objetos existentes; quando você está usando essa ferramenta no modo de importação, só é possível criar objetos novos.
Exportar uma lista dos objetos existentes usando a CSVDE é muito simples. Aqui está como você exportaria os objetos do Active Directory para um arquivo chamado ad.csv:
csvde –f ad.csv
A opção –f indica que o nome do arquivo de saída vem em seguida. Mas você deve estar atento ao fato de que, dependendo do ambiente, essa sintaxe básica poderia resultar em um arquivo de saída grande e complicado. Para restringir a ferramenta e exportar apenas os objetos dentro de uma determinada OU (unidade organizacional), você poderia modificar a instrução da seguinte forma:
csvde –f UsersOU.csv –d ou=Users,dc=contoso,dc=com
Vamos dizer também que você seja o único interessado na exportação dos objetos de usuário para o seu arquivo CSV. Nesse caso, é possível adicionar a opção –r, que lhe permite especificar um filtro de protocolo LDAP (Lightweight Directory Access Protocol) para a pesquisa, e a opção –l, que restringe o número de atributos exportados (observe que está tudo em uma só linha):
csvde –f UsersOnly.csv –d ou=Users,dc=contoso,dc=com –r
    "(&(objectcategory=person)(objectclass=user))" –l
    DN,objectClass,description
A opção –i permite que você importe objetos para o Active Directory de um arquivo CSV de origem. No entanto, criar objetos de usuário usando a CSVDE tem uma limitação crítica: não é possível definir senhas de usuário com ela. Por isso, eu evitaria usar a CSVDE para criar objetos de usuário.

LDIFDE
O Active Directory oferece uma segunda ferramenta interna para operações de usuário em massa, chamada LDIFDE, que é mais eficiente e flexível do que a CSVDE. Além de criar novos objetos, a LDIFDE também pode modificar e excluir objetos existentes e até mesmo estender o esquema do Active Directory. A compensação pela flexibilidade da LDIFDE é que o arquivo de entrada necessário, conhecido como LDIF com a extensão .ldf, usa um formato mais complexo do que o arquivo CSV simples. (Com um pouco de trabalho, também é possível configurar senhas de usuário, mas chegarei lá daqui a pouco.)
Comecemos por um exemplo simples, exportando usuários em uma OU para um arquivo LDF (observe que está tudo em uma só linha):
ldifde -f users.ldf -s DC1.contoso.com -d "ou=UsersOU,dc=contoso,dc=com"
       –r "(&(objectcategory=person)(objectclass=user))"
Assim como acontece com a maioria das ferramentas de linha de comando, é possível encontrar uma explicação completa das opções da LDIFDE executando o comando LDIFDE /? . A Figura 1 descreve as que eu usei aqui. (Observe que as opções são, na verdade, as mesmas para os comandos da CSVDE e da LDIFDE.)
Figure 1 Opções da LDIFDE (Close Figure 1)

Opção | Descrição
-d | Especifica o caminho LDAP ao qual a LDIFDE deve se conectar para a operação.
-f | Indica o nome do arquivo a ser usado; nesse caso, o arquivo de saída dos resultados da exportação.
-r | Especifica o filtro LDAP a ser usado em uma exportação.
-s | Especifica o DC (controlador de domínio) de conexão que executará a operação; se você não incluir isso, a LDIFDE se conectará ao DC local (ou ao DC que o autenticou em caso de execução da ferramenta em uma estação de trabalho).
A verdadeira força da LDIFDE está na criação e na manipulação dos objetos. No entanto, antes de fazer isso, você precisa criar um arquivo de entrada primeiro. A seguir, são criadas duas novas contas de usuário, chamadas afuller e rking; para criar o arquivo de entrada, digite o texto no Bloco de Notas (ou seu editor de textos sem formatação favorito) e salve-o como NewUsers.ldf:
dn: CN=afuller, OU=UsersOU, DC=contoso, DC=com
changetype: add
cn: afuller
objectClass: user
samAccountName: afuller

dn: CN=rking, OU=UsersOU, DC=contoso, DC=com
changetype: add
cn: rking
objectClass: user
samAccountName: rking
Depois de concluir a criação do arquivo, execute o seguinte comando:
ldifde –i –f NewUsers.ldf –s DC1.contoso.com
A única opção nova aqui é -i, que denota se tratar de uma operação de importação, e não de exportação, como você deve ter adivinhado.
Durante a modificação ou a exclusão de objetos existentes, a sintaxe de comando da LDIFDE não muda; na verdade, você modifica o conteúdo do arquivo LDF. Para alterar o campo de descrição das contas de usuário, crie um arquivo de texto chamado ModifyUsers.ldf, como o mostrado na Figura 2.
Figura 2 O arquivo LDF ModifyUsers
Figura 2 O arquivo LDF ModifyUsers
Você importa as alterações executando a mesma sintaxe de comando anterior da LDIFDE, mas especificando o novo nome de arquivo LDF depois da opção -f. O formato LDF para excluir objetos é ainda mais simples; para excluir os usuários com os quais você tem trabalhado, crie um arquivo chamado DeleteUsers.ldf e digite o seguinte:
dn: CN=afuller OU=UsersOU, DC=contoso, DC=com
changetype: delete

dn: CN=rking, OU=UsersOU, DC=contoso, DC=com
changetype: delete
Observe que, diferentemente da CSVDE, a LDIFDE é capaz de configurar senhas de usuário. No entanto, antes que seja possível configurar o atributo unicodePWD de uma conta de usuário, você deve configurar a criptografia SSL/TL (secure sockets layer/transport layer security) em seus controladores de domínio.
Além disso, a LDIFDE pode criar e modificar qualquer tipo de objeto do Active Directory, e não apenas contas de usuário. O seguinte arquivo LDF, por exemplo, criará uma extensão de esquema personalizada chamada EmployeeID-example no esquema da floresta contoso.com:
dn: cn=EmployeeID-example,cn=Schema,
cn=Configuration,dc=contoso,dc=com
changetype: add
adminDisplayName: EmployeeID-Example
attributeID: 1.2.3.4.5.6.6.6.7
attributeSyntax: 2.5.5.6
cn: Employee-ID
instanceType: 4
isSingleValued: True
lDAPDisplayName: employeeID-example
Como os arquivos da LDIFDE usam o formato de arquivo LDAP padrão do setor, os aplicativos de terceiros que precisam modificar o esquema do Active Directory normalmente fornecerão os arquivos LDF que podem ser usados para examinar e aprovar as alterações antes de sua aplicação ao ambiente de produção.
Além das ferramentas para as operações de importação e de exportação em massa, o Windows Server 2003 também inclui um conjunto de ferramentas interno que lhe permite criar, excluir e modificar vários objetos do Active Directory, bem como executar consultas para objetos que atendam a determinados critérios. (Observe que não há suporte para essas ferramentas, dsadd, dsrm, dsget e dsquery, no Active Directory do Windows 2000.)

Dsadd
A Dsadd é usada para criar uma instância de uma classe de objeto do Active Directory em uma determinada partição do diretório. Essas classes incluem usuários, computadores, contatos, grupos, unidades organizacionais e cotas. Dsadd tem uma sintaxe genérica que consiste no seguinte:
dsadd <ObjectType> <ObjectDistinguishedName> attributes
Observe que cada tipo de objeto criado por você assume um conjunto específico de opções correspondentes aos atributos disponíveis para o tipo. Este comando cria um único objeto de usuário com vários atributos preenchidos (observe que está tudo em uma só linha):
dsadd user cn=afuller,ou=IT,dc=contoso,dc=com
–samID afuller –fn Andrew –ln Fuller –pwd *
-memberOf cn=IT,ou=Groups,dc=contoso,dc=com "cn=Help Desk,ou=Groups,
dc=contoso,dc=com"
–desc "Marketing Director"
A opção –memberOf exige o DN (nome distinto) completo de todos os grupos aos quais o usuário deve ser adicionado; caso você queira adicioná-lo a vários grupos, é possível adicionar vários DNs separados por espaços.
Caso algum elemento contenha um espaço como, por exemplo, o DN do grupo de suporte técnico, ele deve ser colocado entre aspas. Caso um elemento contenha uma barra invertida, como uma OU chamada IT\EMEA, a barra deve ser inserida duas vezes: IT\\EMEA. (Esses requisitos se aplicam a todas as ferramentas ds*.)
Ao usar a opção -pwd *, você será solicitado a digitar uma senha para o usuário na linha de comando. É possível especificar a senha dentro do próprio comando (-pwd P@ssword1), mas isso exibirá a senha em texto sem formatação na tela ou em qualquer arquivo de texto ou de script incorporado por você ao comando.
Da mesma forma, é possível criar um objeto de grupo e uma OU usando os dois comandos a seguir:
dsadd computer cn=WKS1,ou=Workstations,dc=contoso,dc=com
dsadd ou "ou=Training OU,dc=contoso,dc=com"

Dsmod
A Dsmod é usada para modificar um objeto existente e você trabalha com ela de maneira muito parecida com a dsadd, usando submenus diferentes e sintaxes dependendo do tipo de objeto que você está modificando. A seguinte instrução da dsmod altera a senha de um usuário e modifica a conta para que ele seja solicitado a trocar a senha por uma nova no próximo logon:
dsmod user "cn=afuller,ou=IT,dc=contoso,dc=com" –pwd P@ssw0rd1
    –mustchpwd yes
Para ver a semelhança dessas opções, veja a sintaxe da dsadd que você usaria para criar esse usuário usando os mesmos atributos configurados:
dsadd user "cn=afuller,ou=IT,dc=contoso,dc=com" –pwd P@ssw0rd1
    –mustchpwd yes
Como é possível ver claramente, caso você saiba as opções de criação de objetos na dsadd, você pode usar essas mesmas opções para modificar usuários usando a dsmod.

Dsrm
O inverso da dsadd é dsrm; como você deve imaginar, essa ferramenta permite que você exclua um objeto na linha de comando. A sintaxe básica de dsrm é muito simples: apenas digite dsrm seguido do nome distinto do objeto que você deseja excluir como:
dsrm cn=WKS1,ou=Workstations,dc=contoso,dc=com
Por padrão, a dsrm exibirá "Tem certeza de que deseja excluir este objeto?" Digite S e pressione Enter. É possível suprimir esse aviso usando a opção –noprompt, mas, obviamente, você não terá nenhuma oportunidade para confirmar que selecionou o objeto correto antes de excluí-lo. Duas opções adicionais podem ser úteis caso você esteja excluindo um objeto de contêiner, ou seja, uma unidade organizacional que pudesse conter outros objetos. O seguinte comando exclui a unidade organizacional TrainingOU e todos os objetos que ela contém:
dsrm ou=TrainingOU,dc=contoso,dc=com –subtree
Este exclui todos os objetos filho contidos em TrainingOU, mas deixa o objeto de unidade organizacional propriamente dito no lugar:
dsrm ou=TrainingOU,dc=contoso,dc=com –subtree
    –exclude

Dsmove
Para mover ou renomear um objeto no Active Directory, você usa a ferramenta dsmove, mas observe que você deve usá-la apenas para mover um objeto dentro de um domínio único. Para migrar objetos entre domínios ou florestas, use a ADMT (Ferramenta de Migração do Active Directory), uma ferramenta gratuita disponível para download no site da Microsoft. A Dsmove depende de duas opções que podem ser usadas separadamente ou em conjunto. Este comando atribui um novo sobrenome à conta de Steve Conn:
dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com"
    –newname "Steve Conn"
Este comando move a conta de Steve da OU IT para a OU Training:
dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com" –newparent
    ou=Training,dc=contoso,dc=com
É possível combinar renomeação e movimentação em uma única operação, especificando ambas as opções de uma só vez da seguinte forma:
dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com" –newname
    "Steve Conn" –newparent ou=Training,dc=contoso,dc=com

Dsget e Dsquery
O conjunto de ferramentas de linha de comando ds* também inclui duas ferramentas usadas para consultar o Active Directory em busca de informações, e não para criar ou modificar objetos.
Dsget assume o DN de um objeto como entrada e fornece a você o valor do atributo ou dos atributos especificados. Dsget usa os mesmos submenus de dsadd e dsmod – usuário, computador, contato, grupo, ou e cota.
Para obter o Nome da Conta SAM e o SID (Identificador de Segurança) de uma conta de usuário, digite o seguinte comando (observe que está tudo em uma só linha):
dsget user cn=afuller,ou=IT,dc=contoso,dc=com
    –samAccountName –sid
Você terá uma saída como a mostrada na Figura 3.
Figura 3 Executando dsget
Figura 3 Executando dsget
Dsquery retorna uma lista dos objetos do Active Directory que atendem aos critérios especificados por você. É possível especificar os seguintes parâmetros, independentemente do submenu que você esteja usando:
dsquery <ObjectType> <StartNode> -s <Search Scope> -o <OutputFormat>
Para ObjectType, a dsquery pode usar os seguintes submenus, cada um com sua própria sintaxe: computador, contato, sub-rede, grupo, ou, site, servidor (observe que o submenu servidor recupera informações sobre controladores de domínio, e não todos os servidores membro do ambiente), usuário, cota e partição. E caso nenhum desses tipos de consulta funcione, é possível usar o submenu *, que lhe permite inserir uma consulta LDAP de forma livre.
StartNode especifica o local na árvore do Active Directory em que a pesquisa começará. É possível usar um DN específico como, por exemplo, ou=IT,dc=contoso,dc=com, ou um dos seguintes especificadores se atalho: domainroot, que começa na raiz de um determinado domínio, ou forestroot, que começa na raiz do domínio raiz da floresta usando um servidor de Catálogo Global para executar a pesquisa.
Por fim, a opção Escopo da Pesquisa especifica como a dsquery deve pesquisar a árvore do Active Directory. Subtree (o padrão) consulta o StartNode especificado e todos os seus objetos filho, onelevel consulta apenas os filhos imediatos do StartNode e base consulta apenas o objeto StartNode.
Para melhor compreender os escopos de pesquisa, leve em consideração uma OU que contenha os objetos de usuário e uma OU filho com objetos adicionais. Usar o escopo da subárvore consultará a OU, todos os objetos de usuário contidos nela, além da OU filho e seu conteúdo. O escopo onelevel consultará apenas os usuários contidos na OU, e não a OU filho ou seu conteúdo. Uma consulta base pesquisará apenas a própria OU sem consultar nenhum dos objetos contidos nela.
Por fim, é possível usar o Formato de Saída para controlar como os resultados de dsquery são formatados. Por padrão, dsquery retorna os nomes distintos de todos os objetos que correspondam à consulta da seguinte forma:
"cn=afuller,ou=Training,dc=contoso,dc=com"
"cn=rking,ou=ITTraining,ou=Training,dc=contoso,dc=com"
Para consultar todos os objetos de usuário contidos na OU IT e em todas as OUs filho, use o seguinte:
dsquery user ou=IT,dc=contoso,dc=com
É possível refinar ainda mais essa consulta adicionando mais opções como, por exemplo, -disabled, que retorna apenas as contas de usuário desabilitadas; -inactive x, que retorna apenas os usuários que não fizeram logon nas últimas x semanas ou mais; ou -stalepwd x, que retornará apenas os usuários que não alteraram suas senhas em x dias ou mais.
Dependendo do número de objetos no diretório, você talvez precise especificar a opção -limit x ao executar a sua consulta. Por padrão, dsquery retornará até 100 objetos que correspondem às especificações da sua consulta; é possível especificar um número maior como, por exemplo, -limit 500, ou usar -limit 0 para instruir dsquery a retornar todos os objetos correspondentes.
É possível usar os demais submenus para executar consultas úteis também de outros tipos de objeto. Leve em consideração a seguinte consulta, que retorna cada subnet definido no Sites e Serviços do Active Directory e que está no espaço de endereçamento 10.1.x.x:
dsquery subnet –name 10.1.*
Ou use o seguinte para retornar todas as sub-redes localizadas no site Corp:
dsquery subnet –site Corp
Com outro submenu, é possível determinar rapidamente quantos controladores de domínio em sua floresta estão configurados como servidores de Catálogo Global:
dsquery server –forest –isgc
Também é possível usar esta sintaxe para ajudar você a determinar qual controlador do seu domínio hospeda a função FSMO (operação flutuante de mestre único) de emulador do PDC (controlador de domínio primário):
dsquery server –hasfsmo pdc
Assim como acontece com os demais comandos ds* que incluem submenus, é possível exibir todas as opções disponíveis dentro de um determinado submenu dsquery acessando o prompt de comando e digitando dsquery user /?, dsquery computer /?, dsquery subnet /? e assim por diante.
Um outro truque inteligente é vincular a saída de dsquery a outra ferramenta como, por exemplo, dsmod usando o caractere | (barra em teclados dos EUA). Por exemplo, digamos que a sua empresa tenha renomeado um departamento de Treinamento para Desenvolvimento Interno e que agora você tenha que atualizar o campo de descrição de todos os usuários relevantes do nome anterior do departamento para o novo. Em uma única linha de comando, é possível consultar os objetos de usuário que tenham um campo de descrição Treinamento e, em seguida, modificar esse campo em massa da seguinte forma:
dsquery user –description "Training" | dsmod
    -description "Internal Development"

Algumas pedras preciosas de terceiros
Como o Active Directory baseia-se em padrões LDAP, é possível consultar e modificá-lo usando qualquer ferramenta compatível com o protocolo LDAP. Muitos fornecedores terceiros lançaram ferramentas pagas para ajudá-lo na administração do Active Directory, mas você, às vezes, acha um tesouro disponibilizado gratuitamente para a comunidade. É esse o caso de uma coleção criada por Joe Richards, MVP de Serviços de Diretório, disponível para download em joeware.net/freetools. Lá, você encontrará várias ferramentas que realizam muitas funções diferentes. As três às quais eu sempre recorro são adfind, admod e oldcmp.

Adfind e Admod
Adfind e admod são semelhantes a dsquery e dsmod; adfind é uma ferramenta de consulta de linha de comando para o Active Directory, e admod pode criar, excluir ou modificar um ou mais objetos do Active Directory.
Diferentemente das ferramentas ds* que têm vários submenus e opções diferentes dependendo do tipo de objeto, adfind e admod apresentam uma sintaxe consistente, independentemente do tipo de consulta ou de modificação que você está tentando executar. A sintaxe básica de adfind é:
adfind –b <Search Base> -s <Search Scope> -f <Search Filter>
    attributesDesired
Portanto, uma consulta do DN e da descrição de todos os objetos de computador dentro do domínio seria:
adfind –b dc=contoso,dc=com –s subtree –f (objectclass=computer) dn
    description
Uma consulta de todos os objetos de usuário ficaria assim:
adfind –b dc=contoso,dc=com –s subtree –f "(&(objectcategory=person)
    (objectclass=user))" dn description
Observe que, exceção feita ao conteúdo da consulta LDAP, a sintaxe não mudou.
À medida que trabalhar com adfind, você descobrirá vários operadores de atalho capazes de evitar que você digite muito. Por exemplo, a opção -default pode substituir -b dc=contoso,dc=com no exemplo anterior e pesquisar todo o seu domínio; -gc pesquisa em uma GC (Coleta de Lixo) e retorna todos os usuários em sua floresta do Active Directory. Também é possível usar a opção -rb para definir uma base relativa para a pesquisa; caso você queira pesquisar a OU Training no domínio phl.east.us.contoso.com, é possível economizar esforço apenas especificando –default –rb ou=Training, e não –b ou=Training, dc=phl,dc=east,dc=us,dc=contoso,dc=com.
Adfind também pode realizar várias funções de pesquisa avançadas que podem ser gerenciadas facilmente na linha de comando, incluindo as mostradas na Figura 4.
Figure 4 Opções da Adfind (Close Figure 4)

Opção | Descrição
-showdel | Consulta o contêiner Deleted Objects em busca de objetos de marca para exclusão.
-bit | Consulta operadores bit a bit como, por exemplo, o atributo userAccountControl.
-asq | Executa uma consulta com abrangência de atributo. Essa função (que pode ser replicada em dsquery) pode recuperar um atributo de um determinado objeto e executar uma consulta em relação a ele.
-dsq | Vincula a saída de uma consulta de adfind a dsmod ou uma das demais ferramentas ds*.
Um exemplo de uso da opção –asq seria "Mostre-me as associações de grupo dos membros do suporte técnico", assim:
adfind –default –rb cn=HelpDesk,ou=IT –asq member memberOf
A admod, como seu próprio nome sugere, é usada para modificar os objetos dentro do Active Directory. Assim como acontece com adfind, não há submenus especializados com sintaxes específicas a serem lembradas; admod usa a mesma sintaxe independentemente do tipo de objeto com o qual você está trabalhando. Também é possível usar a admod para adicionar, mover, renomear, excluir e até mesmo desfazer a exclusão de objetos apenas adicionando a opção apropriada como, por exemplo, -add, -rm, -move, -undel. E assim como acontece com dsquery e dsmod, também é possível usar o caractere | para vincular os resultados de uma consulta de adfind à admod.
Observe que a execução de um cancelamento da exclusão usando admod apenas realiza uma operação de animação da marca para exclusão, na qual a maioria dos atributos do objeto foi removida. Para restaurar completamente um objeto e todos os seus atributos, você precisará executar uma restauração autoritativa do objeto.

Oldcmp
Há mais uma ferramenta joeware que eu considero parte indispensável do meu kit de ferramentas de automação: oldcmp, que examina o banco de dados do Active Directory em busca de contas de computador que não tenham sido usadas em um determinado número de semanas e é capaz do seguinte:
  • criar um relatório das contas sem realizar nenhuma ação em relação a elas
  • desabilitar as contas de computador que não são usadas
  • mover as contas de computador para uma OU diferente designada por você
  • excluir as contas de computador imediatamente
Observe que, como oldcmp tem a capacidade de causar estragos graves no seu diretório, ele tem vários recursos de segurança integrados. Ela não excluirá nenhuma conta que ainda não tenha sido desabilitada (e sem a especificação manual de uma opção de linha de comando "Não foi isso o que eu quis dizer!"). Ela não modificará mais de dez objetos por vez sem uma opção "Não foi isso o que eu quis dizer!" semelhante e não fará absolutamente nada para a conta de computador de um controlador de domínio.
Apesar do nome atualmente equivocado da ferramenta, Joe atualizou oldcmp para que ela execute funções semelhantes também para contas de usuário que não tenham sido usadas há um determinado tempo.
Para um pequeno ambiente do Active Directory ou um em que você esteja apenas trabalhando com uma ou duas inclusões ou alterações por vez, ferramentas de GUI como, por exemplo, Usuários e Computadores do Active Directory podem ser suficientes para a administração do dia-a-dia. Mas caso você esteja adicionando e modificando um grande número de objetos diariamente ou apenas queira uma solução mais aprimorada para as tarefas administrativas, passar para a linha de comando pode agilizar muito o processo de criação, modificação e exclusão de objetos dentro do Active Directory. Como você viu, há várias ferramentas flexíveis e eficientes disponíveis gratuitamente, tanto integradas ao Windows quanto disponibilizadas para download pelos membros da comunidade do Active Directory. Qualquer uma delas tem a possibilidade de aumentar muito a sua produtividade como administrador do Active Directory e, juntas, elas se tornam ainda mais essenciais para a sua rotina de trabalho diário.

Laura E. Hunter ganhou quatro vezes o prêmio Microsoft MVP na área de sistema de rede do Windows Server. Ela é a autora do Active Directory Cookbook (Manual do Active Directory, Segunda Edição; O'Reilly, 2006). Com dez anos de experiência no setor de TI, Laura trabalha atualmente como arquiteta de Active Directory para uma empresa mundial de engenharia. Ela possui vários certificados do setor e é palestrante assídua nas reuniões de grupos de usuários e conferências do setor.


 Windows Server: Reanima&#231;&#227;o de Objetos de Exclus&#245;es do Active Directory
Windows Server Gil Kirkpatrick

Reanimação de Objetos de Exclusões do Active Directory

Visão geral:
  • Como os objetos excluídos são armazenados no Active Directory
  • Uso de LDP e ADRESTORE para localizar e restaurar marcas para exclusão
  • Atributos de objeto e systemFlags

Embora este talvez não seja o seu assunto favorito, a perda acidental de dados acontece e, como profissional de TI, você deve estar preparado para todos os cenários de recuperação. Na edição de abril de 2007 da TechNet Magazine, analisei a importância de se ter um plano em
vigor para a recuperação de usuários e grupos do Active Directory®. Nesse artigo, disponível em technetmagazine.com/issues/2007/04/ADRecovery, abordei as mecânicas de vinculação de objeto, de replicação, de exclusão e de restauração autoritativa. Infelizmente, a função de restauração autoritativa exige que você inicie um DC (controlador de domínio) no DSRM (Directory Service Restore Mode). Isso torna o DC indisponível durante a operação de restauração.
Há uma outra abordagem que você deve conhecer. A reanimação de marcas para exclusão proporciona a única forma de recuperação dos objetos excluídos sem que o DC permaneça offline, além de ser a única maneira de recuperar as informações sobre a identidade de um objeto excluído como, por exemplo, seus atributos objectGUID e objectSid. Ela resolve de maneira interessante o problema da recriação de um usuário ou grupo excluído e da correção de todas as referências antigas de acesso à ACL (lista de controle de acesso), que contêm o objectSid do objeto excluído. Apenas não se esqueça de que a reanimação de marcas para exclusão tem suas próprias limitações, as quais abordarei, e você continuará querendo manter as restaurações autoritativas na manga.
A reanimação de marcas para exclusão foi introduzida no Windows Server® 2003 Active Directory para simplificar determinados cenários de recuperação dos dados. Esse recurso se aproveita do fato de que o Active Directory mantém os objetos excluídos no banco de dados durante um certo período antes de removê-los fisicamente. Neste artigo, eu fornecerei uma descrição detalhada de como o Active Directory exclui e reanima os objetos e mostrarei como é possível recuperar objetos excluídos usando as ferramentas padrão da Microsoft.

O que é uma marca para exclusão?
Quando exclui um objeto do diretório, o Active Directory não o remove fisicamente do banco de dados. Na verdade, o Active Directory marca o objeto como excluído ao definir o atributo isDeleted do objeto como TRUE, ao remover grande parte dos atributos do objeto, ao renomear o objeto e ao movê-lo para um contêiner especial no NC (contexto de nomenclatura) do objeto chamado CN=Deleted Objects. O objeto, agora chamado de marca para exclusão, é invisível para operações normais de diretório. Ele não aparece em nenhum snap-in do MMC (Console de Gerenciamento Microsoft®), e a maioria dos utilitários do protocolo LDAP (Lightweight Directory Access Protocol) ignora a existência das marcas para exclusão. Para todos os efeitos e finalidades, a marca para exclusão já era. No entanto, os dados ainda estão lá – apenas invisíveis. E por que o Active Directory mantém marcas para exclusão, outrora objetos excluídos, no banco de dados?
Embora seja invisível para os demais processos, uma marca para exclusão é visível para o processo de replicação do Active Directory. Para ter a certeza de que a exclusão foi executada em todos os DCs que hospedam o objeto excluído, o Active Directory replica a marca para exclusão aos demais DCs. Por isso, a marca para exclusão é usada na replicação da exclusão em todo o ambiente do Active Directory.

O tempo de vida de uma marca para exclusão
O Active Directory normalmente exclui um objeto do diretório em resposta a uma operação de exclusão do protocolo LDAP ou do SAM (Gerenciador de Contas de Segurança). Essa operação é chamada de exclusão originadora e é diferente das operações de exclusão executadas pelo processo de replicação do Active Directory. Observe que esta descrição não leva em conta os objetos dinâmicos, que têm um mecanismo de exclusão diferente e que são excluídos diretamente pelo Active Directory quando a TTL (vida útil) expira.
Quando recebe a operação de exclusão, o Active Directory inicialmente confere uma lista de verificação para ter a certeza de que o objeto pode ser excluído. Esse processo está surpreendentemente envolvido, já que ele verifica se todos os seguintes critérios são verdadeiros:
  • o atributo isDeleted do objeto ainda não está definido como TRUE. (Não é possível excluir um objeto que já tenha sido excluído!)
  • o sinalizador de controle do descritor de segurança específico do recurso "objeto privado" não está definido no descritor de segurança do objeto. (Esse parece ser um "recurso" não documentado. O sinalizador do objeto privado é o bit 1 do byte Sbz1 da estrutura do descritor de segurança.)
  • o bit de "desautorização da exclusão" (0x80000000) não está definido no atributo systemFlags do objeto.
  • o atributo isCriticalSystemObject do objeto ainda não está definido como TRUE.
  • o descritor de segurança do objeto concede os direitos de acesso apropriados para o usuário excluir o objeto. (Mais especificamente, o usuário tem a permissão para excluir o próprio objeto e um filho do objeto pai.)
  • o objeto não é um objeto de referência cruzada (objectClass = crossRef) para um contexto de nomenclatura existente.
  • o objeto não tem nenhum objeto subordinado. (Se a operação de exclusão do protocolo LDAP incluir a identificação do objeto de controle "exclusão de árvore", o Active Directory também excluirá automaticamente os objetos subordinados, a menos que eles tenham o atributo isCriticalSystemObject definido como TRUE. Isso impede que os objetos de sistema críticos sejam excluídos acidentalmente como parte de uma operação de exclusão da árvore. É claro que você pode excluir esses objetos individualmente.)
  • o objeto não é um objeto interno crítico (por exemplo, não se trata do objeto nTDSDSA do DC ou de objetos de espaço reservado para ancestrais dos títulos do NC).
Além desses critérios serem verdadeiros, o Active Directory também deve estar em um estado apropriado para processar a operação de exclusão. Por exemplo, se estiver no processo de renomeação de um domínio, o Active Directory não excluirá uma conta de confiança do domínio ou um objeto crossRef.
Caso seja determinado que o objeto possa, de fato, ser excluído, o Active Directory continua transformando-o em uma marca para exclusão. O Active Directory inicialmente remove os atributos desnecessários do objeto, deixando os especificados na Figura 1 e os definidos no esquema a ser retido na marca para exclusão. (Consulte a seção "Recuperando atributos do objeto" para obter mais informações sobre isso.) Em seguida, ele altera o RDN (nome distinto relativo) do objeto para CN=<old RDN>\0ADEL:<objectGUID>, em que \0A indica o caractere de avanço de linha ASCII e <objectGUID> é o objectGUID expressado como uma cadeia de caracteres. Em seguida, o atributo lastKnownParent é definido como sendo o DN (nome distinto) do contêiner pai do objeto e o atributo isDeleted é definido como TRUE. Então, o Active Directory remove todos os atributos de vínculo progressivo e regressivo do objeto. Por fim, caso o atributo systemFlag do objeto não tenha o bit de "desautorização de movimentação ao excluir" definido, o Active Directory move o objeto para o contêiner CN=Deleted Objects do NC. (Consulte a barra lateral "Atributo systemFlags e comportamento do objeto" para obter mais informações sobre o assunto.)
Figure 1 Atributos salvos em uma marca para exclusão (Close Figure 1)

Codificados para serem salvos
attributeID
attributeSyntax
dnReferenceUpdate
dNSHostName
flatName
governsID
groupType
instanceType
lDAPDisplayName
legacyExchangeDN
mS-DS-CreatorSID
mSMQOwnerID
nCName
objectClass
objectGUID
objectSid
oMSyntax
proxiedObejctName
replPropertyMetaData
sAMAccountName
securityIdentifier
sIDHistory
subClassOf
systemFlags
trustPartner
trustDirection
trustType
trustAttributes
userAccountControl
uSNChanged
uSNCreated
whenCreated
Gravação pela configuração searchFlags
msDS-AdditionalSamAccountName
msDS-Auxiliary-Classes
msDS-Entry-Time-To-Die
msDS-IntId
msSFU30NisDomain
nTSecurityDescriptor
uid
Você deve observar que a pasta CN=Deleted Objects é simples e não tem nenhuma hierarquia de objetos. Você pode pensar que isso causaria conflitos de nome se você excluísse dois objetos diferentes com o mesmo CN. Só que não é este o caso. Como o objectGUID está incorporado no RDN de todas as marcas para exclusão, o RDN de cada marca é único dentro do contêiner CN=Deleted Objects.
É claro que os objetos não permanecem no contêiner CN=Deleted Objects para sempre. O tempo de vida padrão da marca para exclusão é de 60 dias para florestas criadas inicialmente com o Windows® 2000 e o Windows Server 2003 e de 180 dias para florestas criadas inicialmente com o Windows Server 2003 SP1. É possível alterar o tempo de vida da marca para exclusão definindo o atributo tombstoneLifetime do objeto CN=Directory Service,CN=Windows NT, CN=Services,CN=Configuration, DC=<domínio raiz>.
A cada 12 horas, todos os controladores de domínio iniciam um processo de coleta de lixo. (Isso pode ser alterado com a definição de um novo valor para o atributo garbageCollPeriod do objeto CN=Directory Service,CN=Windows NT, CN=Services,CN=Configuration,DC=<domínio raiz>.) Essa coleta de lixo examina todas as marcas para exclusão no DC e exclui fisicamente todas as que ultrapassarem o tempo de vida da marca para exclusão.

Usando o LDP para localizar marcas para exclusão
LDP é um utilitário ao estilo Windows Explorer a ser usado com o Active Directory. O LDP foi projetado originalmente pela equipe de desenvolvimento do Active Directory para testar seu código LDAP enquanto o Active Directory estava sendo desenvolvido. Agora parte das ferramentas de suporte do Windows Server 2003, o LDP passou a ser uma ferramenta robusta a ser usada com o Active Directory.
Muito embora as marcas para exclusão sejam invisíveis para operações de diretório normais, é possível localizar objetos de marca para exclusão no Active Directory usando as operações de pesquisa e as extensões especiais do LDAP, chamadas de controles. Os controles formam um mecanismo, definido no padrão LDAP, usado para estender o protocolo LDAP e fornecer funcionalidades adicionais que vão além da definição no padrão LDAP ao mesmo tempo em que permanecem compatíveis com os demais softwares adequados ao LDAP. O Active Directory dá suporte a 22 controles, incluindo o controle Return Deleted Objects. Quando usado para estender a operação de pesquisa LDAP, esse controle recupera objetos excluídos que normalmente estariam invisíveis.
Para demonstrar como isso funciona, eu fiz o logon no domínio foo.local com as credenciais de Administrador Corporativo e usei o snap-in do MMC ADUC (Usuários e Computadores do Active Directory) para criar um objeto do usuário (CN=John Smith,CN=Users,DC=foo, DC=local), como mostra a Figura 2. Em seguida, excluí o objeto do usuário usando novamente o ADUC.
Figura 2 Usando o ADUC para criar um usuário
Figura 2 Usando o ADUC para criar um usuário
Agora eu posso executar o programa LDP e usá-lo para exibir a marca de exclusão do usuário removido. A primeira etapa é conectar o LDP a um DC específico e autenticá-lo usando as credenciais apropriadas. Para me conectar ao DC, eu apenas seleciono a opção Connect (Conectar) no menu Connection (Conexão). Como estou executando o LDP no DC, eu apenas pressiono OK para me conectar ao DC local. Caso esteja executando o LDP remotamente, você deve especificar o nome do DC ao qual deseja se conectar. Depois de me conectar com êxito, o LDP exibe os atributos de rootDSE – ele contém os atributos que descrevem o estado e a configuração do próprio DC (consulte a Figura 3).
Figura 3 LDP conectado a um DC
Figura 3 LDP conectado a um DC
Agora, para me autenticar no DC usando as credenciais de administrador corporativo ou de domínio, eu seleciono Bind (Ligar) no menu Connection. Como já fiz o logon como Administrador Corporativo na floresta (por padrão, Administradores de Domínio e Administradores Corporativos têm os direitos de listar e reanimar objetos do contêiner CN=Deleted Objects), eu apenas deixo vazios Username (Nome de usuário) e Password (Senha) na caixa de diálogo Bind e pressiono OK. Do contrário, eu poderia inserir as credenciais apropriadas na caixa de diálogo Bind.
Em seguida, desejo listar o conteúdo do contêiner CN=Deleted Objects,DC=foo,DC=local. Você normalmente não verá o contêiner CN=Deleted Objects porque ele próprio está marcado como excluído. A única forma de pesquisar o contêiner CN=Deleted Objects é usando o controle Return Deleted Objects do LDAP.
Para usá-lo com o LDP, vá para o menu Browse (Procurar) e selecione Search (Pesquisar). A caixa de diálogo de pesquisa mostrada na Figura 4 será exibida. O campo Base Dn (Dn Base) permite que você especifique onde começar a pesquisar dentro da árvore de diretório. Eu insiro o DN do contêiner Deleted Objects do domínio – neste exemplo, o DN é CN=Deleted Objects,DC=foo,DC=local.
Figura 4 Caixa de diálogo Search do LDP
Figura 4 Caixa de diálogo Search do LDP
No campo Filter (Filtro), eu especifico os critérios de pesquisa que o LDP usará. O valor padrão é (objectClass=*), que instrui a pesquisa a retornar todos os objetos que tenham um valor referente ao atributo objectClass. Como mesmo os objetos excluídos no Active Directory têm um valor de objectClass, o filtro padrão retornará todos os objetos dentro do escopo da pesquisa. Neste exemplo, eu altero o filtro para (objectClass=user), o que limita a pesquisa a objetos do usuário. Isso nos permitirá encontrar mais facilmente o usuário excluído John Smith em meio às possíveis milhares de marcas para exclusão no contêiner CN=Deleted Objects.
Você talvez ache que há mais objetos no contêiner CN=Deleted Objects do que os retornados pelo Active Directory em uma única operação de pesquisa. Para resolver esse problema, você normalmente usaria uma pesquisa paginável do LDAP, que retorna os resultados de um grupo por vez. No entanto, o LDP não permite que você especifique uma pesquisa paginável e estendida ao mesmo tempo. Dessa forma, você terá que refinar o filtro do LDAP para localizar o objeto desejado.
Os botões de opção Scope (Escopo) permitem que você especifique o nível de pesquisa na árvore de diretório. Uma pesquisa básica retornará apenas o objeto especificado pelo campo Base Dn. A pesquisa em um nível retornará objetos imediatamente subordinados ao objeto Base Dn. E uma pesquisa em subárvore retornará todos os objetos subordinados ao objeto Base Dn. Como a pasta CN=Deleted Objects é simples, eu uso a pesquisa em um nível para recuperar todas as marcas para exclusão.
Até agora, eu apenas descrevi uma pesquisa convencional do LDAP. Se eu fosse executá-lo agora, o LDP exibiria um erro indicando que CN=Deleted Objects,DC=foo,DC=com não existe, por ele estar marcado como excluído. Eu ainda preciso incluir o controle Return Deleted Objects do LDAP na operação de pesquisa. Para isso, eu clico no botão Options (Opções) da caixa de diálogo Search e seleciono Extended (Estendido) para Search Call Type (Tipo de Chamada de Pesquisa), como mostra a Figura 5. Essa opção me permite especificar os controles da operação de pesquisa. Aqui, eu também altero a lista Attributes (Atributos) para *. Isso faz com que o LDP exiba todos os atributos normais de cada objeto recuperado, e não o conjunto de atributos padrão do LDP.
Figura 5 Caixa de diálogo Search Options do LDP
Figura 5 Caixa de diálogo Search Options do LDP
Agora eu pressiono o botão Controls (Controles) para exibir a caixa de diálogo Controls. Como a caixa de diálogo Controls do LDP é um pouco estranha, não se esqueça de seguir estas etapas com cuidado ao adicionar o controle Return Deleted Objects.
Abra a lista suspensa Load Predefined (Carregar Predefinições), selecione Return deleted objects (Retornar objetos selecionados) e pressione o botão Check in. Isso adiciona o OID (identificador de objeto) do controle Return Deleted Objects (1.2.840.113556.1.4.417) à lista Active Controls (Controles Ativos), como mostra a Figura 6. Em seguida, o LDP adiciona o controle a todas as operações de pesquisa estendida subseqüentes. Pressione OK para salvar as configurações e OK novamente para fechar a caixa de diálogo Search Options (Opções de Pesquisa).
Figura 6 Adicionando o controle Return Deleted Objects
Figura 6 Adicionando o controle Return Deleted Objects
A caixa de diálogo Controls tem um comportamento peculiar. Especificamente, muito embora apareça um OID na lista Active Controls, isso não significa necessariamente que o controle esteja, de fato, em vigor. Às vezes, você precisa fazer o check-out de um controle e fazer o check-in novamente para garantir que ele seja usado na próxima operação do FDAP.
Agora estou pronto para executar a minha pesquisa. Pressiono o botão OK na caixa de diálogo LDP Search (Pesquisa do LDP), e o LDP recupera todos os objetos do usuário que estejam no contêiner CN=Deleted Objects do domínio. A Figura 7 mostra os meus resultados.
Figura 7 Resultados do contêiner CN=Deleted Objects
Figura 7 Resultados do contêiner CN=Deleted Objects

Examinando os resultados do LDP
Minha pesquisa retornou dois objetos de marca para exclusão. Inicialmente, é possível ver o DN da primeira marca para exclusão: CN=John Smith\0ADEL:41800281-6bc4-42c3-a99b-b283022b3af8,CN=Deleted Objects,DC=foo,DC=local. O objectGUID do objeto excluído é representado como uma cadeia de caracteres (41800281-6bc4-42c3-a99b-b283022b3af8). Abaixo do DN está uma lista dos atributos que mostram os valores de objectClass, cn, distinguishedName, etc. É possível ver que o valor do atributo isDeleted é TRUE, o que significa que o objeto foi, de fato, excluído. Você também verá que o objectSid foi preservado na marca para exclusão – isso é importante para recuperar marcas para exclusão de usuários e grupos, como analisarei depois. O atributo lastKnownParent, que representa o DN do objeto que continha o objeto excluído antes de se tornar uma marca para exclusão, também é extremamente importante durante a recuperação das marcas para exclusão.
No meu exemplo, o LDP exibiu dois objetos de marca para exclusão, os quais ambos eram objetos do usuário com o nome CN=John Smith que vinham originalmente do contêiner CN=Users,dc=foo,dc=local. Como posso separar objetos com o mesmo RDN e que vêm do mesmo contêiner? A explicação é muito simples. Antes de executar o LDP para procurar marcas para exclusão, eu criei o objeto do usuário CN=John Smith no contêiner CN=Users,DC=foo,DC=local e o excluí. Em seguida, criei outro objeto de usuário com todos os atributos iguais e também o excluí. Como eu já tinha excluído o primeiro objeto do usuário CN=John Smith, era perfeitamente razoável criar o segundo, muito embora ele tivesse o mesmo nome. Mas esses são objetos separados, únicos, diferenciados por seus objectGUIDs. Como o Active Directory incorpora o objectGUID ao DN da marca para exclusão, eles aparecem como sendo objetos separados no contêiner CN=Deleted Objects.

Como uma marca para exclusão é reanimada
O Active Directory oferece um mecanismo para restaurar uma marca para exclusão como sendo um objeto normal. Isso é efetivamente uma função para desfazer a exclusão de objetos excluídos. A função é de uma operação de modificação do LDAP formada especialmente e que deve incluir duas modificações de atributo específicas: ela deve remover o atributo isDeleted (não apenas defini-lo como FALSE) e mover o objeto para outro contêiner alterando o distinguishedName do objeto. O novo distinguishedName normalmente (mas não necessariamente) usa o atributo lastKnownParent como o contêiner e mantém o mesmo RDN menos o componente \0ADEL:<objectGUID>que o Active Directory adicionou ao criar a marca para exclusão.
Antes de reanimar a marca para exclusão, o Active Directory verifica se determinadas condições necessárias são todas verdadeiras. O usuário deve ter o direito de acesso estendido para reanimar marcas para exclusão definido no título do NC que contém a marca para exclusão. O usuário não pode reanimar seu próprio objeto. O atributo isDeleted da marca para exclusão deve estar definido como TRUE. E o SID (Identificador de Segurança) do objeto do proprietário, conforme a definição no descritor de segurança, deve ter um SID de um dos domínios da floresta ou de um domínio confiável.
Caso o objeto em questão esteja nos NCs Configuration ou Schema, os bits FLAG_CONFIG_ALLOW_RENAME e FLAG_ CONFIG_ALLOW_MOVE devem estar definidos no atributo systemFlags da marca para exclusão. Caso o objeto esteja nos NCs Configuration ou Schema e o sinalizador FLAG_CONFIG_ALLOW_LIMITED_MOVE esteja definido, o objeto só pode ser movido para um contêiner que tenha o mesmo avô – em outras palavras, o objeto deve manter seu bisavô depois da movimentação. E caso o objeto esteja em um NC de domínio ou em uma partição do aplicativo, os bits FLAG_DOMAIN_DISALLOW_RENAME e FLAG_DOMAIN_DISALLOW_MOVE não devem ser definidos no atributo systemFlags da marca para exclusão.
O usuário deve ter os direitos, conforme a definição no descritor de segurança, para modificar o RDN (normalmente o CN, mas nem sempre) e adicionar o objeto ao novo contêiner pai. E novo contêiner pai deve ser superior ao objectClass da marca para exclusão, conforme definição do esquema. Embora as movimentações para dentro ou para fora do contêiner System não sejam normalmente permitidas (a menos que o valor de registro da subárvore do sistema Unlock seja diferente de zero), a reanimação de uma marca para exclusão no contêiner System é permitida.
Jamais é permitido reanimar um objeto de esquema. No entanto, isso não é realmente um problema, já que é possível excluir legitimamente um objeto do NC Schema.
Caso todas as verificações tenham êxito e os requisitos necessários sejam atendidos, o Active Directory realiza as seguintes etapas na marca para exclusão para reanimar o objeto:
  • O atributo isDeleted é removido.
  • Caso não tenha prescrito na operação de modificação, o objectCategory é definido para o objectClass mais específico indicado na marca para exclusão.
  • O RDN é alterado, e o objeto é gravado no novo contêiner pai.
Depois da reanimação, o objeto tem os mesmos atributos objectGUID e objectSid que tinha originalmente. Isso significa que as referências externas ao objeto, por exemplo, nas ACLs, não precisam ser redefinidas como acontece caso você recrie um objeto excluído. O objeto reanimado parece e age como fazia antes de ser excluído. Só que há uma diferença importante: o objeto restaurado perde todos os atributos que não foram salvos na marca para exclusão.

Uso do LDP para reanimar marcas para exclusão
Atributo systemFlags e comportamento do objeto
systemFlags é um atributo opcional definido para a classe superior, o que torna systemFlags um atributo opcional para todas as classes do Active Directory. Trata-se de um bitmask de inteiro de 32 bits que controla o comportamento das movimentações e das exclusões do objeto. Aqui está um resumo rápido de sinalizadores importantes.

FLAG_DISALLOW_DELETE (0x80000000)

Se esse sinalizador estiver definido, o sistema não permitirá que o objeto seja excluído ou movido para outro domínio.

FLAG_CONFIG_ALLOW_RENAME (0x40000000)

Os objetos nos NCs Configuration e Schema não podem ser renomeados, a menos que esse sinalizador esteja definido no atributo systemFlags.

FLAG_CONFIG_ALLOW_MOVE (0x20000000)

Os objetos nos NCs Configuration e Schema não podem ser movidos, a menos que esse sinalizador esteja definido no atributo systemFlags.

FLAG_CONFIG_ALLOW_LIMITED_MOVE (0x10000000)

Os objetos nos NCs Configuration e Schema não podem ser movidos, a menos que esse sinalizador esteja definido no atributo systemFlags. Esse sinalizador impõe mais uma restrição no contêiner de destino da operação de movimentação – o contêiner de destino deve ter o mesmo avô do contêiner atual.

FLAG_DOMAIN_DISALLOW_RENAME (0x08000000)

Por padrão, os objetos em um NC de domínio ou de aplicativo não podem ser renomeados. No entanto, se esse sinalizador estiver definido no atributo systemFlags do objeto, o sistema não permitirá que o objeto seja renomeado.

FLAG_DOMAIN_DISALLOW_MOVE (0x04000000)

Por padrão, os objetos em um NC de domínio ou de aplicativo não podem ser movidos para outro contêiner. No entanto, se esse sinalizador estiver definido no atributo systemFlags do objeto, o sistema não permitirá que o objeto seja movido.

FLAG_DISALLOW_MOVE_ON_DELETE (0x02000000)

Se esse sinalizador estiver definido, o sistema não moverá o objeto para o contêiner CN=Deleted Objects do seu contexto de nomenclatura. Ele irá simplesmente definir o atributo isDeleted, renomear o objeto e remover os atributos não designados no esquema a ser salvo. Isso significa que nem todos os objetos excluídos aparecem no contêiner CN=Deleted Objects do contexto de nomenclatura; alguns permanecem no contêiner pai original.

Agora que eu já mostrei os detalhes práticos da reanimação de marcas para exclusão, quero demonstrar como é possível usar o LDP para restaurar o usuário CN=John Smith que excluí. Primeiramente, eu me conecto a um DC e me autentico. Agora eu posso executar uma operação de modificação usando o LDP. Nos parâmetros de operação da modificação, eu posso remover o atributo isDeleted e especificar um novo DN ao mesmo tempo.
Como estou operando em uma marca para exclusão, eu tenho que especificar o controle Return Deleted Objects do LDAP. Para definir esse controle para a operação de modificação no LDP, selecione Controls no menu de opções, selecione Return deleted objects na lista suspensa Load Predefined, pressione o botão Check in e OK para salvar as configurações do controle.
Agora eu seleciono Modify (Modificar) no menu Browse para abrir a caixa de diálogo Modify e insiro o DN do objeto de marca para exclusão que desejo restaurar. A forma mais fácil de fazer isso é copiando e colando o DN dos resultados da operação de pesquisa que executei antes.
Em seguida, preciso inserir uma lista das operações de atributo a serem executadas. A reanimação de uma marca para exclusão exige duas operações de atributo: excluir o atributo isDeleted e substituir o atributo distinguishedName pelo DN desejado da marca para exclusão reanimada. Então eu digito isDeleted no campo Attribute (Atributo) e seleciono o botão de opção Delete (Excluir). Quando pressiono o botão Enter, a operação de atributo é adicionada à Entry List (Lista de Entradas), como mostra a Figura 8.
Figura 8 Especificando as operações de atributo a serem executadas
Figura 8 Especificando as operações de atributo a serem executadas
Em seguida, eu insiro distinguishedName no campo Attribute, seleciono o botão de opção Replace (Substituir) e digito o novo DN do objeto no campo Values (Valores). Nesse caso, eu uso o distuiguishedName original do usuário, CN=John Smith,CN=Users,DC=foo,DC=local. Quando pressiono o botão Enter, a operação de modificação é adicionada à Entry List.
Como tenho que incluir o controle Return Deleted Objects do LDAP na operação de modificação, eu preciso usar uma modificação de LDAP estendida. Para isso, eu marco a caixa de seleção Extended. Depois que estiver tudo definido, como mostra a Figura 9, eu pressiono o botão Run (Executar) para fazer as alterações. O LDP exibe os resultados em uma janela de texto grande.
Figura 9 Alterar o distinguishedName
Figura 9 Alterar o distinguishedName
Quando retornar ao snap-in do MMC Usuários e Computadores do Active Directory e examinar o contêiner CN=Users, eu verei o usuário que foi excluído de volta ao lugar de onde ele veio. Mas o objeto terá algumas diferenças importantes em relação ao seu estado original, as quais observarei em breve.

Usando o ADRESTORE para reanimar marcas para exclusão
Depois que você sabe como usar o LDP, reanimar uma marca para exclusão não é algo terrivelmente difícil. Mas também não é muito prático. Felizmente, o bom pessoal da Sysinternals (uma empresa que hoje faz parte da Microsoft) desenvolveu uma ferramenta de linha de comando para simplificar o processo de reanimação. Essa ferramenta, chamada de ADRESTORE, está disponível no site da Microsoft em microsoft.com/technet/ sysinternals/utilities/AdRestore.mspx. A instalação é simples. Basta copiar o executável para um diretório apropriado do seu computador, por exemplo, o diretório C:\WINDOWS\SYSTEM32.
O ADRESTORE é executado em dois modos. Se você executá-lo sem parâmetros, ele listará todas as marcas para exclusão no contêiner CN=Deleted Objects do domínio padrão. É possível adicionar uma cadeia de caracteres de pesquisa à linha de comando para selecionar os objetos a serem exibidos, por exemplo:
C:\> adrestore John
Isso exibirá todos os objetos de marca para exclusão no contêiner CN=Deleted Objects com a cadeia de caracteres "John" em seu CN ou atributo OU – ele usa os filtros de pesquisa do LDAP cn=*John* e ou=*John*. Não se trata exatamente da maneira mais flexível de pesquisar objetos de marca para exclusão, embora funcione na maioria das situações. A Figura 10 mostra a saída retornada pela minha pesquisa no ADRESTORE.
Figura 10 Atributos salvos em uma marca para exclusão
Figura 10 Atributos salvos em uma marca para exclusão
Caso queira reanimar uma marca para exclusão, e não apenas localizá-la, você precisa especificar a opção –r com uma cadeia de caracteres opcional como a seguinte:
C:\> adrestore –r John
Esse comando solicitará que você reanime todos os objetos de marca de exclusão correspondentes. O ADRESTORE sempre reanima o objeto no contêiner dado pelo atributo lastKnownParent da marca para exclusão – não há como especificar um contêiner diferente.
O ADRESTORE fornece uma interface de linha de comando prática para o uso da funcionalidade de reanimação do Active Directory. Embora não seja muito flexível, ele é bem mais fácil de usar do que o LDP. Ainda assim, o ADRESTORE não evita dois problemas significativos em relação à reanimação das marcas para exclusão: a recuperação dos atributos removidos do objeto quando ele foi excluído pela primeira vez e a recuperação dos objetos excluídos do NC Configuration.

Recuperando atributos do objeto
Em termos de recuperação de dados, a reanimação de marcas para exclusão tem uma grande vantagem em relação à execução de uma restauração autoritativa: a reanimação de marcas para exclusão não exige que o DC permaneça offline. E reanimar marcas para exclusão é muito melhor do que apenas recriar uma nova versão de um objeto excluído. Se você recriar um objeto, ele sempre receberá novos atributos objectGUID e objectSid (se ele for uma entidade de segurança como, por exemplo, um usuário). Dessa forma, todas as referências externas ao objeto como, por exemplo, as ACLs terão que ser atualizadas para refletir a nova identidade do objeto. Isso pode ser uma grande dor de cabeça.
Alguns atributos são removidos quando um objeto é excluído, e estes não são recuperados com a reanimação de marcas para exclusão. Mas o Active Directory salva alguns atributos principais na marca para exclusão, dentre os quais os mais importantes são os relacionados à identidade como, por exemplo, objectGUID e objectSid. Por padrão, ele também salva muitos outros atributos (veja a Figura 1). A maioria dos atributos codificados para serem salvos não é muito interessante, especialmente em uma avaliação da recuperação de objetos de usuário excluídos. Mas é possível especificar atributos adicionais a serem salvos na marca para exclusão definindo o bit 3 (0x00000008) do atributo searchFlags do objeto attributeSchema correspondente no esquema do Active Directory. Alguns atributos já têm esse bit definido no esquema no Windows Server 2003 R2 (eles também são mostrados na Figura 1).
Instalar determinados aplicativos pode alterar o bit 3 de searchFlags dos atributos existentes ou mesmo adicionar novos atributos que tenham o bit 3 definido. O Exchange Server, por exemplo, configura vários atributos adicionais a serem salvos na marca para exclusão.
O Active Directory não salvará atributos de vínculo progressivo ou regressivo na marca para exclusão, mesmo que você especifique isso no atributo searchFlags do objeto do esquema. Em especial, o Active Directory não salva coisas como o atributo member de um grupo ou o atributo memberOf de um usuário. Por isso, a reanimação de marcas para exclusão não oferece uma solução para a recuperação de associações de grupo no Active Directory. A respeito disso, consulte o meu artigo "Recuperação de desastres: usuários e grupos do Active Directory" em technetmagazine.com/issues/2007/04/ADRecovery. Portanto, você continuará precisando fornecer um mecanismo alternativo para recuperar as informações ao reanimar as marcas para exclusão.
Se quiser usar a reanimação de marcas para exclusão como parte da estratégia de recuperação dos dados, você precisará ter certeza de que os atributos importantes estão salvos na marca ou apresentar outra forma de salvar e recuperar atributos importantes como, por exemplo, usando o LDIFDE ou outro esquema de backup e restauração. Entre as demais opções estão produtos de terceiros para recuperação de dados do Active Directory que oferecem um mecanismo para fazer o backup e restaurar atributos que não estão salvos e não são recuperados da marca para exclusão.

Reanimando objetos do contexto de nomenclatura Configuration
Uma outra limitação substancial da qual a reanimação de marcas para exclusão padece é que, de maneira geral, não é possível reanimar objetos que foram excluídos do NC Configuration. Esses objetos estão sujeitos às regras especiais em relação à movimentação e à nova nomenclatura, conforme definição do atributo systemFlags. A menos quando especificado o contrário pelo atributo systemFlags, os objetos no NC Configuration não podem ser movidos ou renomeados. O Active Directory impõe determinados valores para o atributo systemFlags ao criar objetos de classes específicas, conforme definição na Figura 11. Observe que o Active Directory aplica a operação OR lógica bit a bit a esses valores em combinação com qualquer valor systemFlags especificado na operação de adição. Dessa forma, mesmo se o aplicativo especificar um valor diferente para o atributo systemFlags, os bits necessários serão definidos corretamente.
Figure 11 Configurações systemFlags padrão (Close Figure 11)

Classe | Configuração padrão
servidor | FLAG_DISALLOW_MOVE_ON_DELETE FLAG_CONFIG_ALLOW_RENAME FLAG_CONFIG_ALLOW_LIMITED_MOVE
site | FLAG_DISALLOW_MOVE_ON_DELETE
serversContainer | FLAG_DISALLOW_MOVE_ON_DELETE
nTDSDSA | FLAG_DISALLOW_MOVE_ON_DELETE
siteLink | FLAG_CONFIG_ALLOW_RENAME
siteLinkBridge | FLAG_CONFIG_ALLOW_RENAME
nTDSConnection | FLAG_CONFIG_ALLOW_RENAME
Os únicos objetos do NC Configuration que é possível reanimar em condições normais são os objetos de servidor. Curiosamente, quando o Active Directory exclui um objeto de servidor, a marca para exclusão não é movida para o contêiner CN=Deleted Objects do NC Configuration; a marca para exclusão simplesmente permanece onde está o objeto. Isso permite que o KCC (Knowledge Consistency Checker), que é o processo responsável por calcular a topologia de replicação do Active Directory, se recupere automaticamente de determinados cenários em que objetos de servidor excluídos possam inibir a replicação adequada. Caso esteja tentando reanimar um objeto de servidor, lembre-se de que você não o encontrará no contêiner CN=Deleted Objects.

Reanimação no seu plano de recuperação
A reanimação de marcas para exclusão deve ser uma parte essencial do seu kit de ferramentas. Esse mecanismo é a única forma de recuperação dos objetos excluídos sem que o DC permaneça offline, e, igualmente importante, é a única maneira de recuperar as informações sobre a identidade de um objeto excluído. Isso resolve de maneira interessante o problema da recriação de um usuário ou grupo excluído e da correção de todas as referências antigas de acesso à ACL.
Mas a reanimação da marca para exclusão é uma solução incompleta. Você precisa fornecer o seu próprio mecanismo para a recuperação dos atributos que o Active Directory não mantém em objetos de marca para recuperação, e a sua capacidade de recuperar os objetos excluídos do NC Configuration está limitada. Não se esqueça de que se optar por reanimar um usuário ou grupo excluído, você ainda precisará recuperar as associações de grupo e todos os demais atributos vinculados que talvez sejam necessários.

Gil Kirkpatrick é o Diretor de Tecnologia (CTO) da NetPro e desenvolve softwares para Active Directory desde 1996. Com Guido Grillenmeier, da HP, ele apresenta os conhecidos workshops sobre recuperação de desastres do Active Directory. Gil também é o fundador da Directory Experts Conference (www.dec2007.com).


 Comunica&#231;&#245;es: Conectando usu&#225;rios com o Office Communications Server 2007
Comunicações Alan Maddison

Conectando usuários com o Office Communications Server 2007
Visão geral:
  • A arquitetura do Office Communications Server
  • Recursos de conferência
  • Enterprise Voice
  • Presença avançada

A comunicação unificada chegou. O iminente lançamento do Office Communications Server 2007 oferecerá uma reestruturação completa da experiência oferecida pelo Live Communications Server 2005. Além de aperfeiçoamentos de arquitetura e de administração, o Office
Communications Server 2007 inclui um novo cliente, o Office Communicator. Ele também apresenta novos recursos avançados, como o Enterprise Voice, a Webconferência no local, a presença avançada e as mensagens instantâneas e a federação. Combinados, esses recursos oferecem a plataforma da estratégia Microsoft ® Unified Communication e prometem aumentar a produtividade e aperfeiçoar a colaboração de longa distância.
Essa atualização também inclui uma interface simplificada do snap-in do MMC (Console de Gerenciamento Microsoft). A Figura 1 mostra um dos novos avanços administrativos para contadores de desempenho.
Figura 1 O novo snap-in do MMC inclui contadores de desempenho
Figura 1 O novo snap-in do MMC inclui contadores de desempenho
O novo Office Communications Server 2007 virá em duas edições: Standard e Enterprise. O Office Communications Server 2007 Standard é ideal para implantações com menos de 10 mil usuários. Em uma implantação da edição Standard, um único servidor front-end pode hospedar todos os serviços.
A edição Enterprise está disponível para implantações maiores e pode ser utilizada em uma configuração consolidada ou em uma expandida. Em uma topologia consolidada, todo o hardware é organizado em um único pool de servidores front-end. Para obter a escalabilidade máxima, você poderá usar a configuração expandida, que permite a utilização de servidores Web dedicados executando o IIS (Serviços de Informações da Internet), webconferência e servidores de conferência audiovisual (A/V) fora do pool corporativo de servidores front-end. A Figura 2 mostra uma topologia de configuração expandida.
Figura 2 Topologia de configuração expandida
Figura 2 Topologia de configuração expandida

Arquitetura
A arquitetura do Office Communications Server 2007 foi criada sobre uma fundação de servidores essenciais: servidores front-end, servidores de borda e servidores de aplicativos. Os servidores front-end oferecem a autenticação do usuário, a manutenção do catálogo de endereços, o gerenciamento de presença e de conferência e a hospedagem de aplicativos, além da manipulação de sinais entre servidores e clientes, o gerenciamento de mídia (incluindo o compartilhamento de arquivos) e o roteamento de mensagens instantâneas e do tráfego de conferência.
A funcionalidade essencial de conferência do Office Communications Server 2007 é fornecida por meio de uma série de servidores integrados, também conhecidos como MCUs (unidades de controle multiponto). A Figura 3 mostra um resumo desses servidores e de suas funções.
Figure 3 Os servidores de conferência e suas funções (Close Figure 3)

MCU (Servidor de Conferência) | Funcionalidade suportada
Mensagens instantâneas | Habilita as mensagens instantâneas entre grupos ao rotear o tráfego de IM entre os participantes. Integrada ao servidor front-end e não pode ser instalada em um servidor separado.
Telefonia | Habilita o suporte ao tom de discagem de entrada e de saída. Integrada ao servidor front-end e não pode ser instalada em um servidor separado.
Web | Responsável pela funcionalidade de colaboração como o quadro de comunicações, o compartilhamento de aplicativos e as P & R. Esse servidor também oferece suporte ao compartilhamento de documentos do Office e de apresentações do PowerPoint. Pode ser instalado no servidor front-end ou na configuração do pool expandido em um servidor separado.
A/V | Usado para a mixagem e retransmissão de áudio e vídeo IP com vários participantes. Pode ser instalado no servidor front-end ou na configuração do pool expandido em um servidor separado.
Outra função importante do servidor front-end é hospedar o servidor do catálogo de endereços. Aqueles que já conhecem o Live Communications Server 2005 SP1 reconhecerão esse serviço. No Office Communications Server 2007, ele tem uma função central e agora não será mais um componente opcional. O servidor do catálogo de endereços é formado por dois componentes: o serviço do catálogo de endereços e o armazenamento do arquivo do catálogo de endereços. Esse servidor é o responsável por fornecer informações de contato das fontes internas e externas. A Lista de Endereços Global e as listas de distribuição do Active Directory® e do Exchange Server são exemplos típicos de fontes internas. As fontes externas incluem usuários de parceiros federados ou contatos públicos de mensagens instantâneas.
O Office Communications Server 2007 aprimora a conectividade com o usuário externo introduzida no Live Communications Server 2005 e permite que ele participe de conferências internas. Essa funcionalidade adicional exige dois novos servidores de borda: o servidor de borda de webconferência e o servidor de borda A/V. Em outra alteração, o que antes era formalmente o servidor proxy de acesso agora é conhecido como servidor de borda de acesso. Os servidores de borda do Office Communications Server foram criados para serem colocados em sua rede de perímetro (sub-rede filtrada) e oferecem conectividade ao usuário externo fundamental. A Figura 4 mostra um resumo das funções do servidor de borda e indica para que elas são usadas.
Figure 4 Funções de servidor de borda (Close Figure 4)

Servidor | Funcionalidade suportada
Servidor de borda de acesso | Federação; conectividade de usuário remoto, PIC (conectividade de redes públicas de IM).
Servidor de borda de Webconferência | Webconferência externa.
Servidor de borda A/V | Conferências A/V e chamadas ponto a ponto A/V com usuários externos.
Servidor de proxy reverso | Expansão de grupo, download de arquivo de catálogo de endereços, acesso de webconferência a conteúdo de reunião. Não é uma função estritamente do Office Communications Server, mas oferece funcionalidade fundamental. O ISA Server 2006 também pode oferecer a funcionalidade de proxy reverso.
Além dos servidores integrados descritos anteriormente, o Office Communications Server aproveita os diversos servidores de aplicativos para executar funções essenciais como a autenticação, o armazenamento de metadados de conferência e o fornecimento da funcionalidade de lista de distribuição. Os servidores de aplicativos comumente usados com o Office Communications Server incluem o IIS, os servidores de certificados, os servidores de catálogos globais do ambiente do seu Active Directory, o SQL Server® 2005, o Exchange Server 2007 e os servidores de arquivos.
O IIS é usado para oferecer acesso a conteúdo de reunião, atualizações de catálogos de endereços, expansão dos grupos de distribuição do Active Directory para IM, expansão das listas de distribuição do Outlook® para usuários externos e para facilitar a comunicação subjacente entre os componentes do Office Communications Server.
Os servidores de certificados têm uma função crucial no Office Communications Server para a proteção da comunicação entre cliente e servidor e da comunicação entre servidores. Se você utiliza um servidor de certificados corporativo interno, todos os clientes e servidores internos terão de confiar na autoridade de certificação emissora. Dessa forma, cada cadeia de certificados de autoridade de certificação deve ser instalada no armazenamento Autoridades de Certificação Raiz Confiáveis de cada computador. Se você utilizar os serviços de federação do Office Communications Server, a sua organização parceira deverá fazer o mesmo.
A autenticação de participantes de conferência é suportada pelos servidores de catálogos globais do ambiente do seu Active Directory. Os seus servidores de catálogos globais usarão Kerberos para a autenticação de usuários internos e federados. Os usuários remotos funcionários de sua empresa usarão suas credenciais do Active Directory sobre NTLM e os usuários anônimos serão autenticados pela Autenticação Digest.
O SQL Server é usado para manter os dados sobre o estado das conferências, o registro de usuários e as informações de presença. No caso de uma falha, você poderá restaurar rapidamente uma reunião usando os dados armazenados no SQL Server, oferecendo um método rápido e confiável de recuperação sem perda de conteúdo.
O Exchange Server 2007 e seus recursos de mensagens unificadas oferecem um auxílio importante ao Office Communication Server 2007 por meio da inclusão de mensagens de voz e dos recursos de atendedor automático.
Os servidores de arquivos são usados para o armazenamento de dados que devem ser acessados por clientes. Por exemplo, os arquivos físicos solicitados pelos clientes durante o download do catálogo de endereços são armazenados em um servidor de arquivos. Da mesma forma, o conteúdo adicional de reuniões também é armazenado em um servidor de arquivos.
A arquitetura de protocolo subjacente do Office Communications Server 2007 se baseia em uma mistura de protocolos padrão da Internet com protocolos da Microsoft. Por exemplo, o protocolo SIP é muito usado para uma funcionalidade como as mensagens instantâneas, a conferência e as assinaturas de presença. Os protocolos usados pelos diversos componentes do Office Communications Server oferecem o máximo de poder e de flexibilidade. A Figura 5 mostra um resumo dos protocolos fundamentais e a sua utilização.
Figure 5 Os protocolos e sua utilização (Close Figure 5)

Protocolo | Funcionalidade suportada
HTTP (Hypertext Transfer Protocol) | Acesso de clientes, download de conteúdo de reuniões e dados de catálogos de endereços. Também usada para a comunicação entre os servidores de conferência e o Foco, um componente do Office Communications Server.
Protocolo SIP | Criação e gerenciamento de sessão pelos vários componentes do Office Communications Server, incluindo o Enterprise Voice, mensagens instantâneas, servidores de conferência e presença avançada.
CCCP (Centralize Conference Control Protocol) | Um protocolo personalizado usado para o estabelecimento e para o controle de conferência e de clientes de conferência.
PSOM (Persistent Shared Object Model) | Protocolo personalizado usado no transporte de conteúdo de webconferência, incluindo as chaves de segurança e as funções e os direitos de usuário.
RTP (Protocolo de Transporte em Tempo Real) | Entrega de dados em tempo real. No Office Communications Server 2007, oferece o mecanismo de transporte para o Enterprise Voice e para a conferência A/V.
SRTP (Protocolo de Transporte em Tempo Real Seguro) | Serviços de segurança como criptografia, autenticação de mensagens e integridade para dados RTP. No Office Communications Server 2007, é usado para o transporte seguro de conteúdo de áudio e de vídeo para dispositivos de mídia como microfones e alto-falantes.
RTCP (Protocolo de Controle de Transporte em Tempo Real) | Utilizado em conjunto com o SRTP para transportar informações sobre a qualidade do sinal de sessões de conferências A/V entre dispositivos de mídia.

Enterprise Voice
O Enterprise Voice é a implementação da Microsoft para a telefonia VoIP (Voz sobre Protocolo IP) e é a adição individual mais significativa feita ao produto. Com base na implementação que utiliza o protocolo SIP para a sinalização e o protocolo RTP para tráfego de voz, o Enterprise Voice permite que você faça e receba chamadas de PC para PC assim como de qualquer outro telefone. Além disso, ele oferece uma funcionalidade como o controle de chamadas e a normalização de roteamento e de números. Existe suporte para a PSTN (Rede Telefônica Pública Comutada) e interoperabilidade com PBXs compatíveis com SIP, CSTA (Computer-Supported Telecommunications Applications) ou que fazem interface diretamente com a API do Office Communications Server 2007.
O Office Communications Server 2007 pode ser implantado sem alterações significativas em sua infra-estrutura de voz existente e ainda permite que você obtenha vantagens importantes. Dessa forma, o Enterprise Voice oferece suporte a estas configurações de implantação: SIP–PBX, SIP–IP–PBX e IP-PSTN.
Na configuração SIP–PBX, todas as chamadas são controladas pelo PBX e você mantém os seus telefones. Essa integração é possível graças ao gateway RCC (Controle de Chamada Remota) e do CSTA.
A configuração SIP–IP–PBX aproveita o gateway IP-PSTN, eliminando a necessidade do CSTA e permitindo que o cliente do Office Communicator disque números e controle o telefone IP-PBX. Se você não possui monofones, poderá configurar o Office Communicator como um "softphone".
A implantação do Office Communications Server 2007 com o componente IP-PSTN permite que você roteie controles de chamada para servidores front-end. O Office Communicator pode criar uma interface com VoIP ou com pontos de extremidade SIP de terceiros certificados pela Microsoft (em muitas organizações, esse ponto de extremidade normalmente é um monofone) para fazer e receber chamadas pela Internet.
Os gateways de mídia são gateways de terceiros que oferecem conversão de sinalização e de mídia entre o VoIP e a PSTN. O Office Communications Server 2007 oferece suporte a três tipos de gateways de mídia, que podem ser categorizados como básicos, avançados e híbridos básicos. Para oferecer suporte a gateways diferentes dos avançados o Office Communications Server 2007 oferece a função Servidor de Mediação para o fornecimento de funcionalidade de protocolo fundamental e de tradução de mídia. A integração remota ao escritório também é possível por meio dos componentes disponíveis no Office Communications Server.
Assim como outros componentes do Office Communications Server 2007, o Enterprise Voice se baseia em servidores de borda para oferecer conectividade ao usuário externo. Especificamente, o servidor de borda de acesso é necessário (por causa de sua função de sinalização SIP) para os usuários que estão fora do perímetro corporativo, enquanto que o servidor de borda A/V permite que esses usuários acessem serviços de voz e de vídeo para se conectarem a serviços da rede perímetro, como seu firewall e a implementação de NAT (Conversão de endereços de rede).
Embora o Enterprise Voice eventualmente ofereça suporte a um grande número de clientes, o cliente recomendado atualmente é a versão mais recente do Office Communicator. Além disso, a Microsoft e seus parceiros anunciaram planos para o novo hardware de telefone VoIP que se integrará ao Office Communications Server.
O Enterprise Voice também se integra à função Unificação de Mensagens do Exchange Server 2007, oferecendo uma interface única para email de voz, email, calendários, contatos e recepção de faxes que podem ser acessados por meio de um telefone usando o Outlook Voice Access ou por meio de um computador. Além disso, a Unificação de Mensagens oferece serviços de atendedor automático, oferecendo uma forma de implementação de um sistema de menu telefônico automatizado.

Presença avançada
O conceito de presença avançada que você pode conhecer do Live Communications Server 2005 foi estendido e aprimorado no Office Communications Server 2007. Em geral, a presença está associada ao status e à disponibilidade dos usuários. No Office Communications Server, a infra-estrutura de suporte criou uma experiência mais rica com a granularidade avançada para a configuração de informações relacionadas a presença.
Os usuários agora têm a opção de selecionar seis diferentes modos de status: ele pode ser definido como Online, Ocupado, Não Incomodar, Volto Logo, Ausente ou Aparecer Offline. Os usuários também podem personalizar esse status com informações adicionais. Por exemplo, se o status de um usuário for definido como Não Incomodar, ele poderá oferecer informações adicionais como, por exemplo, o motivo pelo qual ele não deve ser incomodado.
A presença avançada também permite que os usuários filtrem as informações exibidas para outros usuários por meio de cinco níveis de presença opcionais: Pessoal, Equipe, Local de Trabalho, Público e Bloquear. Esses níveis oferecem uma abordagem hierárquica ao gerenciamento de presença. Por exemplo, o nível de presença Pessoal concede aos contatos uma maior flexibilidade ao permitir ações como entrar em contato por meio de mensagens instantâneas quando o status do usuário estiver definido como Ocupado. Os níveis de presença também controlam a quantidade de informações exibidas aos contatos.
Além disso, quando utiliza o Office Communicator, um usuário é capaz de definir seu status de localização, que pode ser um local personalizado ou as opções padrão, casa ou escritório. As informações sobre o local estão disponíveis para os contatos classificados como Pessoal ou Equipe.
Embora os aprimoramentos feitos em presença sejam bem-vindos e com certeza demonstrarão seu valor em termos de simplificação das comunicações, é a infra-estrutura subjacente do Office Communications Server e o mecanismo de presença que causarão o maior impacto nas organizações. Por exemplo, o Office Communications Server 2007 vem com a Web Part Membro, uma Web Part do Office SharePoint Server 2007 que permite que usuários vejam a presença de outros usuários associados a um site ou portal do SharePoint. Essa Web Part pode ser facilmente adicionada aos seus sites SharePoint para facilitar a disseminação de informações de presença por toda a sua infra-estrutura de colaboração fundamental.
As informações de presença estão integradas a todo o conjunto de aplicativos do Microsoft® Office 2007 por meio de espaços de trabalho de documentos e de botões de ação com marcas inteligentes. Por exemplo, os botões de ação com marcas inteligentes podem exibir o status, o contato e as informações de calendário dos usuários. Os usuários podem empregar as ações com marcas inteligentes para compartilhar trabalho, agendar reuniões ou para iniciar uma conversação por mensagens instantâneas.

Conferência no local
Outro aprimoramento significativo do Office Communications Server 2007 é o recurso de conferência no local. A capacidade de hospedar conferências em tempo real com usuários internos ou externos (anônimos ou federados) deverá ser uma ferramenta valiosa para muitas organizações. Essas conferências podem ser agendadas ou ad hoc e podem incluir conferências de mensagens instantâneas, de áudio e vídeo e conferências pela Web, assim como outras ferramentas colaborativas como o compartilhamento de arquivos, quadro de comunicações, anotações de slides, votações e sessões de P & R com participantes. O Office Communications Server também oferece suporte para a transição de um tipo de conferência para outro. Por exemplo, um usuário pode optar por adicionar colaboração a uma sessão de mensagens instantâneas existente e criar uma conferência ad hoc.
Embora o Office Communicator seja o cliente recomendado para conferências, o Office Communications Server 2007 também oferece suporte ao Office Live Meeting 2007 e ao suplemento do Office Live Meeting para Outlook 2007. O Office Communicator 2007 oferece suporte a mensagens instantâneas, participação em sessões A/V, compartilhamento de aplicativos, quadro de comunicações e transferência de arquivos. O Office Live Meeting 2007 inclui suporte à participação em conferências, além do agendamento de sessões, gravação de sessões, votações e P & R.
O suplemento do Office Live Meeting 2007 para Outlook 2007 inclui suporte para tarefas de conferência usando o Outlook 2007, além da capacidade de indicar participantes individuais como participantes ou apresentadores e para enviar convites separados para as funções diferentes. Além dos usuários com as funções Organizador, Apresentador ou Participante, eles também são categorizados em grupos de usuários internos e externos com base em seu local e nas suas credenciais. Os usuários internos possuem um logon no Active Directory e estão na LAN corporativa. Os usuários externos são subdivididos em três categorias: Remoto, Federado e Anônimo.
Os usuários remotos representam qualquer um com uma conta no Active Directory de uma organização. Isso poderia incluir funcionários remotos ou prestadores de serviço. Todos os usuários remotos podem hospedar e apresentar conferências, além de juntar-se a elas.
Os usuários federados possuem credenciais definidas pelo estabelecimento de uma federação no Office Communications Server. Os usuários federados podem participar de reuniões e agir como apresentadores, mas não podem organizá-las.
Os usuários anônimos são o grupo mais restrito; eles só podem participar de reuniões para as quais foram convidados.
Para oferecer uma camada adicional de segurança para qualquer reunião, é possível especificar tipos diferentes de configurações de controle de entrada. O Office Communications Server 2007 oferece o seguinte: autenticada aberta, autenticada fechada e anônima.
Uma reunião autenticada aberta permite que qualquer usuário remoto ou interno com um login no Active Directory possa participar. Qualquer usuário federado também pode participar. Uma reunião autenticada fechada é restrita aos usuários convidados pelo seu organizador. Os usuários federados não podem participar da reunião.
Uma reunião anônima é aberta a qualquer um que receba um convite. Para participar, um usuário deve apresentar uma chave de conferência e passar na autenticação Digest para ter suas credenciais verificadas. A menos que seja promovido a apresentador depois de ingressar, um usuário anônimo só poderá ser um participante. Algumas das configurações disponíveis são mostradas na Figura 6.
Figura 6 Configurações da reunião
Figura 6 Configurações da reunião

Discando
Ao simplificar as comunicações, integrar meios de comunicação diferentes e colocar o controle nas mãos do usuário, o Office Communications Server 2007 tem o potencial de revolucionar a forma como a sua empresa trabalha. O conceito de comunicações contextuais, onde as informações de presença e um meio de comunicação são incorporados ao aplicativo, será a base dessa revolução. Se o Office Communications Server 2007 ainda não está em seu laboratório, adquira-o logo.
Para obter mais informações sobre o Office Communications Server 2007 e para experimentar a versão beta, consulte o TechNet Office System TechCenter, technet.microsoft.com/en-us/office/bb267356.aspx. Além disso, não se esqueça de examinar o blog da equipe Unified Communications Group (grupo de comunicações unificadas) em blogs.technet.com/uc.

Alan Maddison é consultor sênior da MTI Technology Corporation. Ele se concentra principalmente em Active Directory, Exchange Server e virtualização.


 Do editor: Caminhos para o aprendizado
Do editor
Caminhos para o aprendizado
Joshua Trupin

Desde que começamos a produzir revistas, temos criado nossa edição de setembro com a temática de "volta às aulas". Sabemos, é claro, que esse cronograma nem sempre é exato. Nos Estados Unidos, por exemplo, em geral a volta às aulas acontece no final de agosto. E parece que algumas pessoas nunca saem da escola.
Mas, para a maioria de nós, setembro está perto o bastante. E a TechNet Magazine é a instituição de ensino que concede o diploma de profissional de TI de mais alto nível. Tudo bem, nós inventamos isso. Mas não inventamos o que você aprende com a nossa revista. E desenvolvemos um programa completo de aprendizado este mês.
Como todas as boas instituições de ensino superior, oferecemos uma grande variedade de experiências educativas, desde cursos introdutórios de SQL para os fãs de scripts (na coluna "Ei, Equipe de Scripts!") até uma pesquisa sobre as ferramentas de gerenciamento do Active Directory.
Nossos estudos de nível intermediário incluem um curso completo sobre o Windows Vista. Primeiro, você aprenderá como implantar o Windows usando o BDD (Business Desktop Deployment) 2007. Depois, quando já tiver o Windows Vista implantado na sua empresa, receberá também orientação sobre como implementar backups regulares em seus sistemas, com a análise de algumas das principais tecnologias disponíveis no momento.
Agora, falta pouco para obter seu diploma de profissional de TI e você já pode aproveitar nossos estudos avançados sobre o Active Directory. Se estava curioso sobre a reanimação de marcas para exclusão mas não queria esperar até a nossa edição especial de Dia das Bruxas, toda a sua curiosidade será satisfeita este mês.
Claro que a TechNet Magazine é apenas um dos caminhos para o aprendizado. O site da Microsoft TechNet oferece a você mais cursos de aprendizado à distância. A TechNet conta com centenas de webcasts sobre as principais tecnologias para os profissionais de TI, inclusive demonstrações de como a TI da Microsoft usa a tecnologia internamente. As ofertas de webcasts são divididas por tipo de público (profissionais de TI, executivos e assim por diante) e de tecnologia. São também classificadas por nível de dificuldade, exatamente como em um catálogo de cursos de verdade.
Citando apenas um exemplo, a TechNet Magazine traz este mês vários artigos avançados sobre o Active Directory. Mas talvez você ainda não esteja preparado para aproveitá-los ao máximo. Nesse caso, visite os webcasts da TechNet e assista à apresentação de Nível 200 denominada "Conceitos básicos do Active Directory" (msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032295120).
Atualmente, as oportunidades educacionais se apresentam sob várias formas. Da revista à Internet, estamos aqui para fornecer as informações de que você precisa. Depois de ler alguns de nossos artigos, por que não faz uma visita ao blog da TechNet Magazine (blogs.technet.com/tnmag) para tomar um café e conversar um pouco depois da aula?
— Joshua Trupin

Meus agradecimentos aos seguintes especialistas técnicos da Microsoft: Paul Bowden, Justin Hall, Anand Lakshminarayanan, Eduardo Laureano, Mike Lewis, Tim Mintner, Michael Murgolo, Mark Russinovich e Jim Truher.


 Cartas: Respostas &#224;s suas perguntas
Cartas
Respostas às suas perguntas

PsTools
Na coluna “Os arquivos da área de trabalho”, de março de 2007, Wes Miller falou sobre os utilitários PsTools ("PsTools Primer", consulte technetmagazine.com/issues/2007/03/DesktopFiles). Estou tendo problemas para fazer com que esses utilitários fantásticos funcionem. Estou interessado principalmente no PsLoggedOn. Vocês poderiam me explicar como posso colocar esses utilitários em uma pasta em meu caminho? Um exemplo ajudaria muito.
— Tim

A melhor maneira de começar é baixando o pacote PsTools completo (download.sysinternals.com/Files/PsTools.zip) para um diretório de trabalho (por exemplo, c:\toolbox). Depois de extrair o arquivo ZIP para esse diretório, as ferramentas estarão prontas para uso. Se quiser adicionar esse diretório ao seu PATH para que as ferramentas sejam executadas de qualquer local, basta executar o comando a seguir em um prompt de comando, substituindo c:\toolbox pelo seu diretório de trabalho:
SET PATH=%PATH%;c:\toolbox

Elogios ao Robocopy
Até ler o seu artigo sobre a GUI do Robocopy na edição de novembro de 2006, (technetmagazine.com/issues/2006/11/UtilitySpotlight), a nossa equipe de suporte estava perplexa e não encontrava uma forma de preservar os carimbos de data/hora de arquivos movidos de pastas da rede para armazenamentos do SharePoint®. O Robocopy é uma ferramenta genial!
— Cristino

Verificando subchaves do Registro
Nas últimas semanas, tenho tentado descobrir como testar se o valor da subchave do Registro EnableLUA está ativado ou não. Quando ele estiver ativado, o Controle de Conta de Usuário será desabilitado. É o que queremos para poder instalar programas automaticamente em nosso laboratório de testes sem precisar nos conectar com uma conta administrativa para confirmação. Queremos colocar esse teste no início de todos os nossos scripts de instalação e então usar um script que altere o valor de EnableLUA de 1 (ativado) para 0 (desativado) antes de sua execução. No entanto, não consigo achar uma forma de fazer esse teste funcionar. Eu gostaria muito de qualquer ajuda que vocês pudessem me oferecer.
— Derek

A seguir, apresentamos um script básico que lê uma chave do Registro, verifica o valor e o altera, se necessário. Este exemplo lê a chave HKLM\Software\Microsoft\Test\TestKey, verifica se o valor é 1 e, se for, o altera para 0; se o valor não for igual a 1, o script é encerrado:
On Error Resume Next
Set WSHShell =  Wscript.CreateObject _
    ("Wscript.Shell")
RegLoc = _
    "HKLM\Software\Microsoft\Test\TestKey"
KeyValue = WSHShell.RegRead(RegLoc)
If (KeyValue = "1") then
  WSHShell.RegWrite RegLoc,"0"
end If
Wscript.Quit
Como sempre, tenha muito cuidado ao usar scripts que modificam o Registro — especialmente em um caso como este.

ReadyBoost
Vocês poderiam me explicar o ReadyBoost de uma forma um pouco mais clara? Pelo que entendi, o ReadyBoost age como um buffer entre a RAM de uma máquina e o disco rígido, mas os dados são escritos simultaneamente. Isso não significa que o desempenho cairá, já que o sistema está copiando dados duas vezes? Como posso testar o desempenho do sistema com e sem o ReadyBoost?
— Alex

A idéia do ReadyBoost é permitir que a memória flash (pen drives USB e assim por diante) aja como um cache temporário, aumentando a quantidade de RAM tradicional (normalmente mais cara). O ReadyBoost não escreve, necessariamente, os mesmos dados na memória flash e no disco rígido de forma simultânea. Em vez disso, age como uma camada intermediária de cache entre a RAM e o disco. Mark Russinovich explicou um pouco mais sobre esse assunto em seu artigo de março de 2007, "Dentro do kernel do Windows Vista: parte 2", onde diz:
"Depois que o serviço ReadyBoost inicializa o cache, o driver do dispositivo Ecache.sys intercepta todas as leituras e gravações nos volumes do disco rígido local (por exemplo, C:\) e copia todos os dados que estão sendo gravados no arquivo de cache criado pelo serviço...
...Quando o ReadyBoost observa leituras aleatórias que podem ser satisfeitas a partir do cache, ele as atende de lá, mas como os discos rígidos possuem um acesso de leitura seqüencial melhor que a memória flash, ele permite que as leituras que fazem parte de padrões de acesso seqüencial vão diretamente para o disco, mesmo que os dados estejam no cache."
Leia o restante do artigo de Mark em technetmagazine.com/issues/2007/03/VistaKernel.

Download do Windows PE
Parece haver uma inconstância em sua coluna Cartas da edição de maio de 2007. A primeira pergunta, "Criando imagens", diz: "É possível criar e personalizar imagens do Windows® PE 2.0 com as ferramentas encontradas no WAIK..." Isso indica que o Windows PE está incluído nas ferramentas e que pode ser baixado.
Na última pergunta, "Obtendo o Windows PE", no entanto, vocês responderam: "O Windows PE (só) está disponível como um benefício do Software Assurance..." Acho que a sua primeira resposta está correta e a segunda está desatualizada.
— Xihui

O Windows PE 2.0 está disponível para download no WAIK (Kit de Instalação Automatizada do Windows). Ele possui regras de licenciamento diferentes do Windows PE 1.6 (a versão anterior, discutida no ano passado em "Noções básicas sobre o Windows PE". Esse artigo pode ser lido em technetmagazine.com/issues/2006/09/WindowsPE). O Windows PE 1.6 foi disponibilizado somente como parte do Software Assurance.

Segurança do Windows PowerShell
Muito tem se falado sobre o Windows PowerShell™. Já li artigos que elogiam a sintaxe parecida com a do UNIX, a facilidade de formatação da saída de comandos e mais, mas ainda não vi nada sobre preocupações de segurança quando o Windows PowerShell é utilizado no data center.
Quais são as questões de segurança que aparecem durante a implantação ou a execução de um shell poderoso como o Windows PowerShell em servidores de produção?
— Carlos

Nós concordamos totalmente que a segurança em torno do Windows PowerShell é um tópico importante. Na verdade, o nosso colunista de Windows PowerShell, Don Jones, mergulhará nesse tópico nesta edição da TechNet Magazine. Além dessa cobertura, talvez você queira examinar dois livros importantes que foram lançados recentemente: Windows PowerShell in Action (O Windows PowerShell em ação), de Bruce Payette (Manning Publications, 2007) e Windows PowerShell: TFM, de Don Jones e Jeffrey Hicks (SAPIEN Press, 2007). Ambos abordam o Windows PowerShell em uma profundidade considerável e possuem capítulos inteiros dedicados à segurança.

Práticas recomendadas para SQL
Discordo totalmente das recomendações da sua resposta sobre o BPA (Best Practices Analyzer) e os objetos de qualificação por esquema (consulte technetmagazine.com/issues/2007/05/SQLQA). O SQL Server™ 2005 ainda precisa resolver esquemas (ao contrário dos proprietários únicos do SQL Server 2000, que o autor erroneamente chamou de "esquemas"). A ordem de resolução do SQL Server 2005 está bem documentada nos Manuais Online.
Portanto, os objetos de qualificação ainda são uma prática recomendada para evitar erros de ambigüidade e para economizar ciclos de CPU para o otimizador na resolução de nomes de objetos. A recomendação da coluna parece-me ser o oposto do que foi dito no white paper "Problemas de compilação em lote, de recompilação e de cache no SQL Server 2005".
— Mike

Fomos direto à fonte para obtermos uma resposta — David Browne, colaborador da nossa coluna P&R do SQL e arquiteto de tecnologia do Microsoft Technology Center, em Dallas, no Texas. Ele disse o seguinte:
As práticas recomendadas são questões de que as pessoas podem e irão discordar. Especialmente em relação ao desempenho, as pessoas têm percepções diferentes sobre o que constitui uma diferença significativa de desempenho e o que pode ser uma otimização que valha a pena.
Por exemplo, escrever consultas de uma certa forma para economizar ciclos de CPU do otimizador na compilação é algo em que nunca pensei fazer, e duvido que isso faça alguma diferença mensurável na carga de trabalho real.
Por outro lado, reduzir a freqüência de compilações ao promover a reutilização de planos de consultas é uma otimização de desempenho comumente aceita.

WinPE
Estamos usando o OSDFP (Operating System Deployment Feature Pack) do SMS (Systems Management Server) para a instalação de sistema operacional. Agora que o Windows Vista® foi lançado, queremos instalá-lo usando o OSDFP, que atualizamos para a última versão. Qual é a versão do Windows PE fornecida com o OSDFP mais recente?
Costumávamos criar um arquivo .iso de instalação de imagem e copiá-lo no RIS (Serviços de Instalação Remota). Em seguida, usávamos a opção de inicialização de rede para ligar uma nova máquina. Mas nós atualizamos o RIS para o WDS (Serviços de Implantação do Windows), que só oferece suporte ao arquivo WIM (Windows Imaging) como imagem de inicialização. Como podemos criar uma imagem WIM por meio de uma opção de instalação a partir do OSD?
— Vasishta

A versão do Windows PE não foi atualizada com o lançamento mais recente do OSDFP — ele ainda inclui a versão 1.5 (também conhecida como Windows PE 2004). Mesmo que o Windows PE não tenha sido atualizado, a implantação do Windows Vista agora é totalmente suportada pela última versão do OSDFP.
O melhor processo a ser usado na criação de uma imagem de área de trabalho implantável é o indicado no Solution Accelerator para BDD (Business Desktop Deployment). Você pode encontrar todos os componentes e a documentação necessária em microsoft.com/technet/desktopdeployment/bdd/2007. Leia também o artigo de Michael Niehaus, "Implantando o Windows Vista com o BDD 2007", nesta edição da TechNet Magazine.

Pôsteres do Windows Server 2003
Acabei de receber a minha edição de julho de 2007 da TechNet Magazine e adorei encontrar dois pôsteres do Windows Server® 2008! Um colega meu recebeu um pôster do Windows Server 2003 em uma das edições anteriores. Vocês sabem como posso obter esses pôsteres do Windows Server 2003, impressos ou em PDF?
— Jason

Ficamos muito felizes em saber que você gostou dos pôsteres do Windows Server 2008! Existe uma versão em PDF do pôster do Windows Server 2003 disponível em go.microsoft.com/fwlink/?LinkID=80428. Nós só fizemos uma versão do pôster do Windows Server 2003.


 Caixa de Ferramentas: Novos produtos para profissionais de TI
Caixa de Ferramentas
Novos produtos para profissionais de TI
Greg Steen

Mover Bancos de dados do SQL Server
xSQL Bundle Professional Edition
www.xsqlsoftware.com
Tanto faz se você se dedica a suporte operacional, desenvolvimento de aplicativos, teste de controle de qualidade ou gerenciamento de configuração. Se você é um profissional de TI (e acredito que seja, na medida em que está lendo a TechNet Magazine), mover bancos de dados SQL Server™ provavelmente faz parte da sua vida. E quando mover dados e esquemas de dados, você precisa ter cuidado com inconsistências. Para ajudar você a evitar essas inconsistências, é necessário um bom conjunto de ferramentas para fazer a comparação e a sincronização de dados e esquemas.
Uma ferramenta que utilizei recentemente foi o xSQL Bundle do Software xSQL. O pacote é composto de quatro diferentes aplicativos: o xSQL Object, o xSQL Data Compare e seus aplicativos de linha de comando associados.
O xSQL Object permite comparar e sincronizar esquemas de bancos de dados. Ele fornece diversas opções de comparação para tipos e instâncias de objetos que você deseja comparar entre os bancos de dados. O aplicativo também permite criar instantâneos de esquemas, úteis para manter histórico de versões. Esse recurso também oferece uma forma fácil de reversão a um estágio anterior do esquema. Você pode até gerar esquemas de scripts com o xSQL Object, permitindo
que você transporte ou empacote seu esquema de banco de dados.
O xSQL Data Compare pode fazer a equivalência e sincronizar os dados contidos em dois servidores de banco de dados SQL Server. Ele permite que você escolha e compare os conteúdos completos de dois bancos de dados ou selecione um conjunto de tabelas para comparar. Caso suas tabelas não combinem exatamente, você pode definir um mapeamento de tabelas padrão para certificar-se de que os dados contidos nessas tabelas são iguais. Quando sincronizar uma grande quantidade de dados, o aplicativo alterna para o modo de inserção em massa, economizando tempo do processo de sincronização.
Tanto o xSQL Data Compare quanto o xSQL Object permitem que você salve seu espaço de trabalho para que não seja preciso recriar seu ambiente de comparação constantemente. A sincronização para ambos os aplicativos é transacional, assim você pode ter certeza de que todas as operações são realizadas com sucesso ou inteiramente revertidas. Todos os aplicativos no pacote também suportam as instâncias de bancos de dados tanto do SQL Server 2000 quanto do SQL Server 2005, e você pode comparar e sincronizar dados relevantes e objetos entre as versões.
Talvez os recursos mais poderosos do xSQL Bundle sejam os dois utilitários de linhas de comando, que efetivamente permitem executar suas tarefas de comparação e sincronização por qualquer compilação, processo, monitoramento ou agendador automático de tarefas que você possua. (No meu manual, automação de tarefas redundantes sempre torna a vida mais fácil e mais produtiva.) Os utilitários de linhas de comando absorvem o arquivo XML de configuração que você pode criar com um assistente de configuração a partir da interface do aplicativo principal. Cada utilitário possui algumas opções de log de arquivos de texto, assim você adquire a capacidade de rastrear o que ocorre durante a execução automática.

Preço: O preço inicial da licença do xSQL Bundle Professional Edition é US$ 499 para um único usuário.
O xSQL Data Compare pode sincronizar dados em dois bancos de dados SQL Server.
O xSQL Data Compare pode sincronizar dados em dois bancos de dados SQL Server.

Ativa Comunicações Mais Seguras
WinSSHD
www.bitvise.com
Se você procura formas de melhorar a segurança em sua organização, deve considerar o Secure Shell Handling 2 (SSH2) e o Secure FTP (SFTP). Simplificando, o encapsulamento do SSH2 permite que você conecte-se remotamente a serviços. Também pode ajudar na proteção contra hackers ao reduzir o número de portas de escuta diretas para aplicativos, abertas em seu firewall. O SFTP é uma alternativa ao seu servidor de STP padrão e utiliza o SSH2 para dar segurança aos dados e comandos.
Se esses protocolos se parecem com alguma coisa por que você se interessa, você deve dar uma olhada no WinSSHD from Bitvise. O WinSSHD é um servidor SSH2 desenvolvido especificamente para Windows.
A instalação é bem simples. O aplicativo fornece um painel de controle intuitivo para gerenciar o serviço WinSSHD. O painel de controle é onde você encontra todas as funções, desde o simples iniciar/parar até a visualização do log de eventos do Windows® (onde você pode filtrar eventos WinSSHD). É ali que você deve ir para iniciar o painel de configurações, que permite configurar os detalhes essenciais da instalação. Você pode configurar as ligações de interface e porta, ajustar a configuração de log, especificar os métodos da seção de criptografia SSH que você deseja habilitar, configurar os tempos máximos de sessões, escolher métodos de autenticação, especificar as configurações de proxy e controlar os acessos às instâncias. Você também pode importar e exportar configurações.
Com o acesso às configurações de controle, você pode restringir acessos via regras de IP (com o suporte de mascaramento para o controle de sub-rede) e por regras de nomes de DNS (processadas depois das regras de IP).
O WinSSHD permite virtualização, o que é um recurso fantástico para implementações de SFTP. Isso significa que você pode atribuir milhares de usuários virtuais para uma conta de Windows, simplificando contas e detalhes de segurança. O aplicativo também suporta autenticação e controle de acesso a grupos do Windows, de forma que você não precisa definir uma política para cada usuário.
Com suporte ao Kerberos 5 e à autenticação NTLM, o WinSSHD pode ser integrado a um ambiente de logon único. O cumprimento desta tarefa requer um cliente SSH habilitado para GSSAPI, como o Tunnelier, que é um bom produto também disponível no Bitvise. O Tunnelier, conforme você poderia esperar, é completamente compatível com o servidor WinSSHD. Ele também serve para configurar seu servidor WinSSHD remotamente.
Se o ambiente do seu servidor SFTP ou SSH2 é de missão crítica, você pode agrupar o WinSSHD para melhorar a disponibilidade. Essa é uma tarefa razoavelmente simples, mas se você acha que precisa de ajuda, o site da empresa fornece informações e guias de configuração para o cluster, encaminhamento de porta, encapsulamento de Desktop Remoto e outros itens.

Preço: US$ 99,95.
O WinSSHD permite que você especifique os métodos das sessões de criptografia
O WinSSHD permite que você especifique os métodos das sessões de criptografia

Atividade do Monitor USB
Monitor USB Profissional
www.hhdsoftware.com
Eis um produto para todos os usuários. Talvez você seja um fã de software do tipo “faça-você-mesmo”, que gosta de criar e modificar drives para seus dispositivos USB. Ou talvez seja um engenheiro de hardware que desenvolve dispositivos USB. Ou talvez você tenha ficado vidrado nas luzinhas de algum dispositivo USB tentando adivinhar o que estaria causando tanta atividade. Se qualquer um desses cenários for verdadeiro, o USB Monitor Professional do HDD Software pode ajudar. É um utilitário que permite gravar, exibir e analisar dados sendo transferidos entre um dispositivo USB e um sistema baseado em Windows, através de um controlador de domínio USB.
A interface do usuário é um pouco confusa, mas uma vez acostumado, você pode obter e monitorar diversas informações sobre dados passando para o dispositivo USB e também vindo dele. Por padrão, o aplicativo grava a maioria dos comandos e suas configurações, que trafegam para um dispositivo USB. Com alguns dispositivos, especialmente os de armazenamento maciço, isso pode ser completamente detalhado. Felizmente você pode personalizar os dados que deseja que o aplicativo grave nos dispositivos de armazenamento maciço.
Uma vez armazenada uma sessão, você pode analisar os dados de diversas maneiras. Para esses dispositivos de armazenamento maciço, você obtém a Visualização de Armazenamento Maciço. Também há opções de gráfico linear de estatísticas e do desempenho do dispositivo, uma visualização de pacotes brutos e pedidos de controle, visualização de decodificador de pacote de dados, uma visualização específica de HID e uma de Imagem Fixa (que decodificará o protocolo de Imagem Fixa USB para dispositivos compatíveis).
Devido à quantidade de dados armazenados pelo aplicativo, você não gostaria que uma sessão de armazenamento durasse muito tempo. Mais ainda, você pode restringir a quantidade máxima de espaço em disco permitida para ativar sessões de armazenamento e comprimir os dados para reduzir o espaço necessário.

Preço: Começa com US$ 175,99 para uma licença normal.
O USB Monitor Professional grava os comandos transmitidos para um dispositivo USB
O USB Monitor Professional grava os comandos transmitidos para um dispositivo USB

Gerenciar Mídia Virtual
Virtual CloneDrive
www.elby.ch/fun/software
Lidar com mídia de verdade pode ser muito chato. Desde a mudança para o Windows Vista e a perda de compatibilidade com o Painel de Controle do CD-ROM Virtual da Microsoft, tenho procurado uma alternativa para montar imagens de CD e DVD. (Por falar nisso, para aqueles interessados como você, pode-se encontrar o Painel de Controle do CD-ROM Virtual da Microsoft® para Windows XP em go.microsoft.com/fwlink/?LinkId=94801.)
Com certeza, é possível executar o Painel de Controle do CD-ROM Virtual no Windows Vista. O problema é que você terá sempre que executá-lo com o perfil de Administrador, e só poderá ver o drive montado sobre o contexto de Administrador, ou seja, através de um prompt de comando de Administrador — mas não com o contexto de usuário do Windows Explorer. Como resultado, não apenas a ferramenta não funciona como eu gostaria mas também requer que eu execute o aplicativo em um ambiente menos seguro.
Uma ferramenta que encontrei, que funciona no contexto de usuário do Windows Vista,
é o Virtual CloneDrive, da Elaborate
Bytes. Esse aplicativo se auto-instala como um gerenciamento de GUI e um controlador de armazenamento que você pode ver do
Gerente de Dispositivo. Uma vez instalado, o aplicativo tem três configurações básicas. Primeiro,
você pode especificar o número de drives virtuais que deseja usar, com o máximo de oito drives em paralelo. Segundo, e talvez a minha opção favorita, você pode escolher para ajustar a configuração do Virtual Sheep (Ovelha Virtual), que substitui o ícone padrão do drive de CD/DVD com uma ovelha zangada, assim você sabe quais drives são ISO e quais são físicos em seu sistema. Finalmente, você pode escolher para automontar a última imagem atribuída àquele drive virtual na inicialização.
Além dos arquivos ISO, o Virtual Clone Drive também pode montar e ler arquivos .ccd, .dvd, .img, .udf, e .bin. Ele também se integra ao Windows Explorer, proporcionando acesso rápido para montar e desmontar imagens. E uma das melhores coisas do Virtual CloneDrive é que ele é grátis. Se você trocou pelo Windows Vista®e tem procurado uma nova solução para gerenciar arquivos ISO, você definitivamente deve experimentar essa ferramenta.

Preço: gratuito.
A ovelha zangada do Virtual CloneDrive
A ovelha zangada do Virtual CloneDrive

Revisão do livro
SharePoint Products and Technologies Administrator's Pocket Consultant
microsoft.com/MSPress/books/10623.aspx
Os escritórios modernos não trabalham sem uma infinidade de papéis, e certamente têm que lidar cada vez mais com documentos eletrônicos. Gerenciar e compartilhar esses documentos é uma preocupação crescente e várias empresas estão avaliando os serviços do Microsoft SharePoint® e o SharePoint Server como solução. O livro Microsoft SharePoint Products and Technologies Administrator's Pocket Consultant, escrito por Ben Curry, pode ajudar. Se você está avaliando o SharePoint, bastante envolvido na fase de planejamento, ou já possui uma infra-estrutura de SharePoint instalada, esta referência de recurso administrativo e tarefas diárias é uma excelente ajuda.
Para quem, como você, está acostumado com a série Administrator's Pocket Consultant, este guia soará bastante familiar. Ele está no mesmo nível de outros livros em termos de conteúdo e estrutura. O livro fala sobre Windows SharePoint Services 3.0, SharePoint Server 2007 Standard e SharePoint Server 2007 Enterprise Edition. Ele é dividido em quatro seções.
A primeira seção, "SharePoint Products and Technologies Fundamentals", fornece uma visão geral de componentes, versões, requisitos e instalação dos produtos SharePoint Server. Essa seção explica o que diferencia o Windows SharePoint Services 3.0 e as versões Standard e Enterprise do SharePoint Server. Depois a seção guia você pela instalação de cada um dos três produtos. Ele também detalha que bancos de dados do SQL Server e que locais do IIS Web são criados durante a instalação.
A próxima seção, "SharePoint Core Administration”, aborda a Interface de Administração Central e oferece referências sobre como criar novas Coleções de Sites e sites, como importar, usar e editar Web Parts e como configurar Grupo e email para a instalação. Aqui, de novo, você pode ver como monitorar o Workflow e gerenciar seus diferentes recursos.
A terceira parte do livro, "Working with SharePoint Server 2007", examina os recursos e a funcionalidade específica para as versões SharePoint Server Standard e Enterprise. Ele aborda tópicos como a configuração do Enterprise Content Management, como criar e configurar o SharePoint Portals, instalar os recursos de Busca e Indexação e como configurar o Excel®Calculation Services. A seção Excel Calculation Services também fornece orientações sobre a configuração de serviços em um ambiente multisservidor para aumentar a performance e a disponibilidade.
A quarta seção se aprofunda nos aspectos operacionais de uma implementação do SharePoint Server, mostrando como escalar um SharePoint Server 2007 para um farm de servidores e as diferentes configurações para essa implementação. Finalmente, o livro mostra o básico sobre as operações de Backup e Recuperação, como analisar o desempenho e como usar os recursos de log do SharePoint Server para ajudar a manter e melhorar seu site.
Na medida em que o livro se intitula como uma referência diária para administradores, considero que os que estiverem na fase de planejamento e os que são apenas curiosos sobre o SharePoint encontrarão uma maneira rápida de compreender melhor o SharePoint. A estrutura do livro — iniciar com uma discussão básica que detalha as diferentes tecnologias do SharePoint e os que elas fazem, depois abordar tópicos mais complexos, como configuração do Excel Calculation Services, escalando para uma farm de servidores — garante que se trata de uma referência para pessoas que estão aprendendo sobre as tecnologias SharePoint e que o livro se firmará como uma referência útil à medida que o conhecimento sobre o assunto aumente.

Preço: US$ 29,99.

Greg Steen é profissional de tecnologia, empresário e entusiasta. Ele está sempre buscando novos métodos e ferramentas para facilitar as operações e o desenvolvimento para os profissionais de TI.


 P&amp;R do SQL: Afunilamentos de CPU, restaura&#231;&#227;o, movimenta&#231;&#227;o de bancos de dados e muito mais
P&R do SQL
Afunilamentos de CPU, restauração, movimentação de bancos de dados e muito mais
Editado por Nancy Michell

P O uso de CPU do meu SQL Server™ começou a apresentar picos repentinamente – embora nada tenha sido alterado. Nenhum usuário foi adicionado, nenhum hardware foi desativado, nenhuma tabela foi criada. O que pode estar acontecendo?

Dica: acesso durante a Criação do Índice
Há momentos em que você deseja criar índices em tabelas grandes (o que pode demorar muito tempo), embora queira que os dados permaneçam disponíveis durante esse processo. Como você consegue cumprir ambos os objetivos?
Sempre que um índice cluster é criado, ignorado ou reconstruído, o SQL Server coloca um bloqueio SCH-M (Schema modification) na tabela, que impede todo o acesso do usuário aos dados subjacentes durante a operação. É esse o caso quando você cria um índice cluster em uma tabela. Por outro lado, quando você cria um índice não-cluster em uma coluna, o SQL Server coloca um bloqueio S (Shared) na tabela e isso, ao mesmo tempo em que impede a atualização dos dados na tabela subjacente, pelo menos permite que você execute instruções SELECT e, assim, possa ler os dados.
Caso a disponibilidade de leitura na tabela seja importante durante a criação do índice cluster, é possível criar um índice em uma tabela e torná-lo uma operação online. Este é o comando:
CREATE UNIQUE CLUSTERED INDEX CLUST_IDX_SQLTIPS
ON SQLTips (tip) with (ONLINE=ON) Go;
Ao usar operações de índice online nas tabelas, o SQL Server continuará colocando um bloqueio SCH-M para um índice cluster ou um bloqueio S para um índice não-cluster na tabela subjacente, mas apenas por um período muito curto – durante as fases inicial e final da operação de índice. Por isso, essa opção oferece um acesso melhor à consulta e à atualização da tabela subjacente durante o processo de criação do índice. Apenas observe que a criação do índice/operações online só estão disponíveis com o SQL Server 2005 Enterprise Edition.

R Um afunilamento de CPU que acontece repentina e inesperadamente sem que haja nenhuma alteração ou carga adicional pode ter várias razões em sua origem, mas algumas das mais comuns incluem um plano de consulta não ideal, uma má configuração do SQL Server, o projeto incorreto do aplicativo/banco de dados e os recursos de hardware insuficientes.
A primeira coisa a ser feita em uma situação como essa é identificar se o servidor está vinculado à CPU e, caso esteja, identificar as instruções que mais consomem a CPU no seu sistema de SQL Server local. É possível usar o Monitor de Desempenho para determinar se o servidor está vinculado à CPU olhando o contador PROCESSADOR:% DO TEMPO DO PROCESSADOR. Caso o valor referente ao tempo usado por CPU seja igual ou maior do que 75 por cento, você tem um afunilamento de CPU.
Você também deve monitorar os agendadores do SQL Server consultando a DMV (exibição de gerenciamento dinâmico) chamada SYS.DM_OS_SCHEDULERS para consultar o valor das tarefas em execução. Um valor não nulo indica que as tarefas devem aguardar sua fração de tempo para serem executadas; valores altos desse contador também são um sintoma de um afunilamento de CPU.
É possível usar a seguinte consulta para listar todos os agendadores e observar o número de tarefas em execução:
SELECT
 Scheduler_ID,
 Current_Tasks_Count,
 Runnable_Tasks_Count
FROM
 SYS.DM_OS_SCHEDULERS
WHERE
 Scheduler_ID < 255
Para obter as 50 instruções SQL de maior uso da CPU, use a consulta na Figura 1.
Figure 1 50 usos principais da CPU (Close Figure 1)
SELECT TOP 50 (a.total_worker_time/a.execution_count) AS [Avg_CPU_Time],
 Convert(Varchar,Last_Execution_Time) AS 'Last_execution_Time',
 Total_Physical_Reads,
 SUBSTRING(b.text,a.statement_start_offset/2,
 (case when a.statement_end_offset = -1 then len(convert(nvarchar(max), b.text)) * 2
 else
 a.statement_end_offset end - a.statement_start_offset)/2) AS Query_Text,
 dbname=Upper(db_name(b.dbid)),
 b.objectid AS 'Object_ID'
 FROM sys.dm_exec_query_stats a
 CROSS APPLY
 sys.dm_exec_sql_text(a.sql_handle) AS b
 ORDER BY
 [Avg_CPU_Time] DESC

P Eu tive que recuperar um banco de dados do SQL Server 2005 a partir da fita. Depois da restauração, a maioria das permissões que os usuários tinham no banco de dados foi perdida. Você pode me dizer o que eu fiz de errado durante a restauração? Os dados estavam certos, mas as permissões estavam uma bagunça.

R O mais provável é que você não tenha restaurado o banco de dados mestre no mesmo ponto e as identificações de logon no banco de dados do usuário não correspondam às do banco de dados mestre atual. Você precisa sincronizá-los. A barra lateral "Onde obter ajuda ao mover um banco de dados" lista os recursos mais úteis para se chegar à origem dos problemas enfrentados por você ao restaurar ou mover um banco de dados.

P Eu desenvolvi um aplicativo em que uso um procedimento armazenado que distribui os dados XML em tabelas relacionais usando o OpenXML no SQL Server 2005 SP1. O documento XML tem, no máximo, 5KB (a média é de 2,5KB). O procedimento armazenado é chamado muitas vezes em paralelo (até 50 vezes).
Estou enfrentando sérios problemas de contenção do bloqueio e acho que eles se devam ao OpenXML. O que vocês acham?

R Embora o OpenXML possa ser mais rápido na distribuição ou na conversão de dados em um único segmento do que o método baseado em nós, este normalmente dimensiona melhor, especialmente se usado em paralelo. No entanto, caso vá usar o OpenXML mesmo assim, você deve usar as seguintes diretrizes para melhorar o desempenho geral do OpenXML.
Em vez de chamar o OpenXML cinco vezes com o mesmo padrão de linha (ao observar que estava fazendo isso em sua solução), você deve extrair todos os dados com o mesmo padrão de linha para uma tabela temporária e, em seguida, executar as seleções nessa tabela temporária. Tente liberar a memória usando sp_xml_removedocument assim que possível. Além disso, é uma boa idéia evitar usar curingas como, por exemplo, * e //, sempre que possível; fornecer o caminho explícito resultará em uma consulta de execução melhor.

P DBCC SHRINKFILE está sendo executado muito lentamente no meu servidor. Eu teria um desempenho melhor em um computador multiprocessador? O que posso fazer para melhorar a situação?

R DBCC SHRINKFILE é uma operação de segmento único, o que significa que ele não usa várias CPUs. Ele move páginas do back-end do arquivo para o front-end, uma página por vez. E a redução, como costuma ser chamada, não executa a desfragmentação; na verdade, em muitas situações, a redução aumenta a fragmentação lógica.
Entre algumas das formas de melhorar o desempenho da redução está a movimentação das páginas em índices cluster. Se você tivesse heaps e eles tivessem muitos índices não-cluster, a velocidade seria notadamente menor (em comparação a uma situação de índice cluster).
Também observe que a movimentação das páginas de dados BLOB (grande objeto binário) é baixa, porque os dados em linha devem ser lidos para que a raiz dos dados LOB seja localizada.
Caso a maior parte do conteúdo de um índice/tabela resida no final do arquivo, é possível reconstruir os índices e movê-los para o front-end do arquivo. A reconstrução dos índices aproveita várias CPUs e poderia usar menos espaço de log no modo bulk_logged. Quando você executar a redução, ela funcionará mais rapidamente.
Para obter mais informações sobre operações de redução, comece com as entradas em blogs.msdn.com/sqlserverstorageengine/archive/2007/03/29/how-does-your-schema-affect-your-shrink-run-time.aspxe blogs.msdn.com/sql-serverstorageengine/archive/2007/04/15/how-to-avoid-using-shrink-in-sql-server-2005.aspx.
Onde obter ajuda ao mover um banco de dados
  • Como mover bancos de dados entre computadores que estão executando o SQL Server
  • Como mover os bancos de dados do SQL Server para um novo local usando as funções Desanexar e Anexar no SQL Server
  • INF: Opção com a instrução RESTORE usando o WITH MOVE
  • Como resolver problemas de permissão ao mover um banco de dados entre servidores que estão executando o SQL Server
  • INF: Como transferir logons e senhas entre instâncias do SQL Server
  • INF: Noções básicas sobre e solução de problemas Assistente de Banco de Dados copiar na SQL Server 2000
  • Logons de usuário e permissões em um banco de dados podem estar incorretos depois que o banco de dados for restaurado
  • Não é possível restaurar backups do banco de dados de sistema para uma compilação diferente do SQL Server
  • Como recuperar uma tabela específica ou linhas de backups do banco de dados ou backups do log de transação no SQL Server

Dica: alterando portas
Qualquer pessoa que conheça o SQL Server sabe que o número de porta padrão que o SQL Server escuta é 1433. Embora as instâncias nomeadas do SQL Server sejam configuradas para usar as Portas Dinâmicas (o que significa que elas poderão selecionar qualquer porta disponível sempre que uma instância do SQL Server for iniciada), a instância padrão do SQL Server sempre escuta a porta 1433. Portanto, caso esteja escutando a porta padrão e não esteja bem protegido, o servidor está em risco. Mas é possível impedir ataques alterando a porta padrão. Assim:
Abra o SQL Server Configuration Manager e expanda Configuração de Rede do SQL Server 2005, Protocolos. Em seguida, clique duas vezes em TCP/IP. A lista das propriedades de TCP/IP e suas funções são mostradas no gráfico abaixo; defina-as corretamente.
Observe que, como o SQL Server Database Engine pode escutar várias portas no mesmo endereço IP, você deve listar as portas que deseja usar separadas por uma vírgula no formato 1433,1500,1501. Caso queira configurar um único endereço IP para escutar várias portas, você também deve definir o parâmetro Escutar Tudo para não na guia Protocolos da caixa de diálogo Propriedades de TCP/IP.
Agora, clique com o botão direito do mouse em cada endereço e clique em Propriedades para identificar o endereço IP que deseja configurar. Caso a caixa de diálogo Portas TCP Dinâmicas contenha 0, o que indica que o mecanismo do banco de dados está escutando portas dinâmicas, exclua o 0. Na área Propriedades de IP, dentro da caixa Porta TCP, digite o número da porta que o endereço IP deve escutar e clique em OK. No painel do console, clique em Serviços do SQL Server 2005 e, no painel de detalhes, clique com o botão direito do mouse em SQL Server (<nome da instância>) e clique em Reiniciar para parar e reiniciar o SQL Server.
Depois que você configura o SQL Server para escutar uma porta específica, há várias formas para que um cliente se conecte à porta. É possível executar o serviço Navegador do SQL Server no servidor para se conectar à instância Database Engine por nome; você pode criar um alias no cliente, especificando o número da porta, ou pode programar o cliente para se conectar usando uma cadeia de conexão personalizada.

Propriedade | Descrição
Ativo | Indica que o SQL Server está escutando a porta designada. Não disponível para IPAll.
Habilitado | Habilite ou desabilite a conexão. Não disponível para IPAll.
Endereço IP | Exiba ou altere o endereço IP usado pela conexão. Lista o endereço IP usado pelo computador e o endereço de loopback IP, 127.0.0.1. Não disponível para IPAll.
Portas Dinâmicas TCP | Em branco, caso as portas dinâmicas não estejam habilitadas. Para usar as portas dinâmicas, defina como 0.
Porta TCP | Exiba ou altere a porta que o SQL Server escuta. Por padrão, a instância padrão escuta a porta 1433. O campo está limitado a 2047 caracteres.

Meus agradecimentos aos seguintes profissionais de TI da Microsoft por suas respostas às perguntas do mês: Chad Boyd, Cindy Gross, John Hadden, Saleem Hakani, Stephen Jiang, Mahesh Nayak, Paul Randal e Wayne Yu.


 Utilit&#225;rio em destaque: PageDefrag
Utilitário em destaque
PageDefrag
Lance Whitney
Faça download do código deste artigo: PageDefrag (70KB)

Média O desfragmentador do Windows® pode otimizar a maioria dos arquivos em seu HD, mas alguns itens estão além das possibilidades da maioria das ferramentas de desfragmentação. Arquivos abertos e bloqueados para uso exclusivo, como o arquivo de página do Windows e hives do Registro, não são processados normalmente pelo desfragmentador embutido no Windows ou por outras ferramentas. As APIs padrão do Windows não suportam desfragmentação desses arquivos enquanto eles estão sendo usados. Felizmente, o utilitário PageDefrag, criado por Mark Russinovich para o Sysinternals, previne problemas ao desfragmentar os itens que permanecem intocáveis pela ferramenta.
O PageDefrag pode desfragmentar o arquivo de página do Windows, hives de Registro, logs de eventos e o arquivo de hibernação (a área no disco onde a memória é salva quando um notebook entra em estado de hibernação). O programa otimiza esses arquivos durante a seqüência de inicialização do PC antes que sejam usados.
Para executar o PageDefrag, apenas dê um clique duplo no arquivo pagedfrg.exe. O programa exibe o nome de cada arquivo que pode ser desfragmentado (veja Figura 1). O arquivo de página é pagefile.sys. Os hives do Registro aparecem como arquivos individuais para cada hive — DEFAULT, SAM, SECURITY, SOFTWARE, e SYSTEM. Os logs de evento também exibem como arquivos individuais; por exemplo, AppEvent.evt é o log Aplicativo, SecEvent.evt é o log de segurança e o SysEvent.evt é o log de sistema. Finalmente, o arquivo de hibernação é o Hiberfil.sys.
Figura 1 O PageDefrag exibe os nomes de cada arquivo que pode processar
Figura 1 O PageDefrag exibe os nomes de cada arquivo que pode processar
Próximo ao nome de cada arquivo está uma coluna de Clusters, que exibe para você quantos clusters no disco estão alocados para o arquivo, e uma coluna Fragmentos, que indica quantos pedaços fragmentados, ou não contíguos, do arquivo estão espalhados pelo disco. Baseado neste dado, você pode determinar se os arquivos precisam ou não de desfragmentação.
Você tem duas opções: você pode desfragmentar os arquivos na próxima inicialização ou a cada inicialização. A menos que os arquivos sejam muito usados ou o PC seja um servidor ou outro dispositivo raramente reinicializado, você poderia desfragmentá-los na próxima inicialização. Você também pode habilitar uma contagem regressiva, de forma que tenha tempo para cancelar a desfragmentação tão logo o PC comece a funcionar.
Na próxima vez que reinicializar o computador, o comando normal chkdsk é executado, e depois o PageDefrag começa a agir. Arquivos já organizados em clusters contíguos são ignorados. Aqueles partidos em fragmentos são otimizados, um a um. O programa exibe o nome de cada item desfragmentado, informa se a desfragmentação foi bem-sucedida e lista o número de clusters alocados ao arquivo, ambos antes e depois da desfragmentação.
O PageDefrag pode não conseguir otimizar um arquivo se o PC tiver pouco espaço disponível em disco ou se o espaço livre, por si só, estiver muito fragmentado. Nesses casos, você precisará limpar mais espaço e executar um desfragmentador com o Windows para otimizar o espaço livre e depois tentar com o PageDefrag de novo.
O PageDefrag geralmente é executado rapidamente, pois lida com uma pequena quantidade de arquivos. Entretanto, se os arquivos estiverem muito fragmentados, o processo pode levar algum tempo, pelo menos na primeira vez. Depois que o PageDefrag terminar, o Windows carrega normalmente. Você pode abrir o programa novamente para confirmar que cada arquivo é, agora, um único fragmento.
Você pode executar o PageDefrag remotamente, pela linha de comando ou por um script, usando as opções -e Defrag boot, -o Defrag once, -n Never Defrag e -t Set countdown para segundos específicos com o arquivo pagedfrg.exe.
Para saber mais e obter uma cópia, visite microsoft.com/technet/sysinternals/FileAndDisk/PageDefrag.mspx.

Lance Whitney é consultor de TI, instrutor e redator técnico. Ele passa incontáveis horas fazendo ajustes em estações de trabalho e servidores do Windows. Jornalista de formação, ingressou corajosamente no mundo de TI há 15 anos.


 The Cable Guy: Modelos de host fortes e fracos
The Cable Guy
Modelos de host fortes e fracos
Joseph Davies

São cada vez mais comuns as configurações dos hosts de rede serem em hospedagem múltipla, com diversas interfaces. Um host de hospedagem múltipla fornece uma conectividade ampliada porque pode se conectar simultaneamente a várias redes, como uma intranet ou a Internet. Entretanto, como podem se conectar a intranets e à
Internet, os serviços que rodam em hosts de hospedagem múltipla são vulneráveis a ataques. Para ajudar a prevenir ataques e ter uma idéia de como o tráfego de IP se processa em um host de hospedagem múltipla, vamos dar uma olhada em modelos de hosts fortes e fracos, para hospedagem múltipla, e depois descreverei como esses modelos são suportados pelo Windows®.
A especificação RFC 1122 descreve os dois modelos para um host de hospedagem múltipla que não esteja atuando como roteador e está apenas enviando e recebendo tráfego de IP unicast. Esses modelos, conhecidos como hosts fortes ou fracos, especificam se o tráfego unicast enviado ou recebido deve ser associado com a interface de rede na qual o tráfego viaja. Esses modelos determinam como um host envia e recebe pacotes e influi na vulnerabilidade dos serviços executados no host.
Embora o RFC 1122 defina esses modelos para o IPv4, eles também se aplicam ao IPv6. Um exemplo de host de hospedagem múltipla para IPv6 é um computador que usa tanto o IPv4 quanto o IPv6 e que tenha um adaptador de rede conectado a uma intranet e a uma interface de encapsulamento IPv6.

Modelo de Host Fraco
No modelo de host fraco, um host de IP (tanto o IPv4 quanto o IPv6) pode enviar pacotes em uma interface que não tenha atribuído o endereço de origem do IP do pacote que está sendo enviado. Isso é conhecido como comportamento de envio de host fraco. Um host de IP pode receber pacotes em uma interface que não tem atribuído o endereço de IP de destino para o pacote que está sendo recebido. Isso é conhecido como comportamento de recebimento de host fraco.
Quando você tem um host de IP de hospedagem múltipla com várias interfaces, habilitar o comportamento de recebimento de host fraco em interfaces pode algumas vezes tornar o host vulnerável a ataques de hospedagem múltipla. Por exemplo, a Figura 1 exibe o Host A conectado à Internet e à intranet. O Host A tem o endereço público IPv4 131.107.89.211 atribuído à interface de Internet e o endereço privado IPv4 192.168.17.48 atribuído à interface de intranet.
Figura 1 Exemplo de um computador de hospedagem múltipla
Figura 1 Exemplo de um computador de hospedagem múltipla
Com o comportamento para envio de host fraco habilitado nas interfaces de Internet e intranet, o Host A pode enviar pacotes do 131.107.89.211 e do 192.168.17.48 em sua interface de Internet; do 131.107.89.211 e do 192.168.17.48 em sua interface de intranet.
Com o comportamento de recebimento de host fraco habilitado, o Host A pode receber os seguintes tipos de pacotes (considerando que as regras do firewall do host permitem esse tráfego): pacotes para o 131.107.89.211 em sua interface de Internet, pacotes para o 192.168.17.48 em sua interface de Internet, pacotes para o 131.107.89.211 em sua interface de intranet e pacotes para o 192.168.17.48 também em sua interface de intranet.
Quando você tem um comportamento de recebimento de host fraco habilitado, um usuário de Internet mal-intencionado pode enviar pacotes para a interface de Internet do Host A para atacar serviços executados nesse host e que estão disponíveis apenas para hosts na intranet. Esse tipo de ataque pode acontecer se a infra-estrutura de Internet encaminhar para a interface do Host A de pacotes destinados ao 192.168.17.48. Você pode prevenir esse tipo de ataque configurando as regras apropriadas do firewall na interface de Internet do Host A. Entretanto, mesmo que você faça isso, os serviços que estão rodando no Host A e estão disponíveis para os clientes da intranet podem estar sob risco.

Modelo de Host Forte
No modelo de host forte, os comportamentos de envio e recebimento são diferentes. Com envios do host forte, podem ser enviados apenas pacotes em uma interface se a essa interface estiverem atribuídos os endereços de IP que estão sendo enviados. Com os recebimentos de hosts fortes, é possível receber pacotes em uma interface apenas se a essa interface estiverem atribuídos os endereços de IP do pacote que está sendo recebido.
Com o comportamento de envio do host forte habilitado nas interfaces de Internet e intranet, o Host A, na Figura 1, pode enviar pacotes somente a partir do 131.107.89.211 em sua interface de Internet, e pacotes a partir do 192.168.17.48 em sua interface de intranet.
Com o comportamento de recebimento do host forte habilitado, o Host A recebe pacotes somente de 131.107.89.211 em sua interface de Internet e pacotes de 192.168.17.48 em sua interface de intranet.
Na Figura 1, o modelo de host forte para o Host A solta na interface de Internet todos os pacotes de entrada endereçados para 192.168.17.48 sem a necessidade de configurar regras de firewall, isolando efetivamente da Internet a interface de intranet do Host A.
Quando você escolher o modelo de host forte, lembre-se de que ele pode influir em alguns tipos de conectividade desenvolvidos para o comportamento do host fraco. Por exemplo, algumas implementações de balanceamento de carga podem usar comportamento de host fraco para receber pacotes em qualquer interface e depois roteá-los para a interface apropriada internamente. Também pode sofrer influência um host que usa envio de host fraco para enviar tráfego de qualquer endereço de origem em uma interface correspondente a uma conexão rápida.

Envio de Recebimento de Host Forte
Agora vamos ver como se processa o envio e o recebimento em um host genérico tanto para IPv4 quanto para IPv6, quando você permite que envios e recebimentos do host sejam habilitados pela interface.
Para os pacotes enviados, o IP checa primeiro se um endereço de origem já foi especificado. Se não foi, o IP realiza uma pesquisa ampla pelo endereço de destino do pacote em uma tabela de roteamento. Em uma pesquisa abrangente, todas as rotas da tabela do roteador são consideradas. Baseado na rota de destino selecionada, o IP determina a interface do próximo salto (a interface usada para posicionar o pacote na camada de link) e o endereço do próximo salto. Baseado na interface de próximo salto, o IP usa o processo de seleção de endereço definido em RFC 3484, conforme necessário, para determinar o melhor endereço de origem. A esta altura, o IP possui tudo de que precisa para enviar o pacote: os endereços de origem e de destino, a interface de próximo salto e o endereço de próximo salto.
Se o endereço de origem foi especificado, a interface da origem é conhecida. A interface de origem é atribuída ao endereço de origem. O IP então determina se os envios do host forte serão habilitados na interface de origem.
Se forem desabilitados, o IP realiza uma pesquisa ampla dos endereços de destino dos pacotes na tabela de roteamento. Baseado na rota que melhor corresponda ao destino, o IP determina a interface de próximo salto e o endereço de próximo salto. O IP possui os endereços de origem e de destino, a interface de próximo salto e o endereço de próximo salto. Observe que, com o comportamento de envio do host forte desabilitado na interface de origem, a interface de próximo salto pode não ser a mesma da interface de origem.
Se os envios de host forte estiverem habilitados na interface de origem, o IP realiza uma pesquisa restrita dos endereços de destino do pacote na tabela de roteamento. Em uma pesquisa restrita, serão consideradas apenas as rotas com uma interface de próximo salto da interface de origem. Baseado na rota selecionada para o destino, o IP determina o endereço de próximo salto. O IP possui os endereços de origem e de destino, a interface de próximo salto e o endereço de próximo salto. Observe que, com o comportamento de envio do host forte habilitado na interface de origem, a interface de próximo salto é sempre a mesma interface de origem. A Figura 2 mostra o IP genérico enviando o processo de host.
Figura 2 IP Genérico enviando o processo de host
Figura 2 IP Genérico enviando o processo de host
Quando o endereço de origem tiver sido especificado, a pesquisa restrita de rota pode selecionar um caminho com a métrica maior, entre vários caminhos na tabela de roteamento que correspondam mais exatamente ao destino. Por exemplo, o Host A na Figura 1 possui duas rotas padrão: uma aponta para a Internet com a métrica 10 e a outra aponta para a intranet com a métrica 20. O comportamento de host forte é habilitado em ambas as interfaces da LAN.
Se o aplicativo de envio no Host A não especifica um endereço de origem, o resultado da pesquisa de rota é a rota padrão com a métrica mais baixa; o Host A sempre envia o tráfego da interface de Internet com o endereço de origem 131.107.89.211. Entretanto, se o aplicativo de envio no Host A especifica um endereço de origem 131.107.89.211, o resultado da pesquisa é a rota padrão para a interface de Internet; o Host A envia o tráfego da interface de Internet. Se o aplicativo de envio no Host A especifica um endereço de origem de 192.168.17.48, a pesquisa seleciona a rota padrão para a interface de intranet; o Host A envia o tráfego da interface de intranet. Com a pesquisa restrita de rota, o IP envia o tráfego com um endereço de origem de 192.168.17.48 usando a rota padrão com a métrica mais alta.
Para o tráfego de recebimento, o IP primeiro determina se o tráfego é destinado para o host. Se não for, o IP silenciosamente descarta o pacote porque o host não está atuando como um roteador. O IP então determina se os recebimentos de host fracos são habilitados na interface de entrada (a interface na qual o pacote foi recebido). Se estiverem desabilitados, o IP processa o pacote. Se estiver habilitado, o IP então determina se o endereço de destino no pacote está atribuído à interface de entrada. Se estiver, o IP processa o pacote. Se não, o IP descarta o pacote silenciosamente. A Figura 3 mostra o IP genérico recebendo o processo de host.
Figura 3 Recebendo o processo de host
Figura 3 Recebendo o processo de host

O Comportamento de Host Fraco e Forte no Windows
O Windows XP e o Windows Server® 2003 utilizam o modelo de host fraco para envio e recebimento de todas as interfaces IPv4 e o modelo de host forte para envio e recebimento de todas as interfaces IPv6. Você não pode configurar esse comportamento. A pilha Próxima Geração TCP/IP no Windows Vista e no Windows Server 2008 suporta envios e recebimentos de host forte tanto para IPv4 quanto para IPv6 em todas as interfaces por padrão, exceto para uma interface de encapsulamento Teredo para uma retransmissão específica de host Teredo. A Figura 4 lista os comandos que você pode utilizar para configurar o comportamento de envio e recebimento tanto para IPv4 quanto para IPv6 em uma interface. Observe que o InterfaceNameOrIndex é o nome da interface da pasta Conexões de Rede ou o índice desta interface. Você pode obter o índice de interface na exibição do comando:
Figure 4 Comandos para configurar comportamentos de envio e recebimento fortes e fracos (Close Figure 4)

• netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled
• netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled
• netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled
• netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled
netsh interface ipv6 show interface
O Comportamento de Host Fraco e Forte e o RFC 3484
Para fornecer um método padronizado para escolher endereços IPv6 e IPv4 de origem e destino para tentar conexões, a RFC 3484 define dois algoritmos. O primeiro é um algoritmo de seleção de endereço de origem para escolher o melhor endereço de origem a ser usado com um endereço de destino. O outro é algoritmo de seleção de endereço de destino para classificar a lista de possíveis endereços de destino por ordem de preferência.
Comportamentos de hosts fortes e fracos são usados ao se determinar a lista de candidatos de endereços de origem para um determinado endereço de destino, e isso também afeta a classificação final da lista de endereços de destino. Para comportamento de envio de host forte, a lista de endereços de origem candidatos consiste nos endereços unicast atribuídos à interface de envio para o destino. Para comportamento de envio de host fraco, a lista de candidatos pode incluir endereços atribuídos a qualquer interface que tiver habilitado o envio de host fraco. Para mais informações sobre seleção de endereços de origem e destino, visite microsoft.com/technet/community/columns/cableguy/cg0206.mspx.

Por padronização, tanto o envio quanto o recebimento de host fraco estão desabilitados para o IPv4 e o IPv6 para todas as interfaces, exceto a interface de encapsulamento para uma retransmissão específica de host Teredo.
Para mais informações sobre RFC 3484, veja a barra lateral "Comportamento de Host Fraco e Forte e RFC 3484."

Desabilitar Rotas Padrão para Conexões Remotas de Acesso a VPN
Um acesso remoto a cliente da rede virtual privada (VPN) é outro exemplo de host de hospedagem múltipla. Mesmo que haja uma interface única de LAN conectada à Internet, quando um cliente VPN de acesso remoto completa uma conexão VPN, trata-se de hospedagem múltipla. Ele tem duas interfaces: a interface de LAN e uma interface baseada no Protocolo Ponto-a-Ponto para a conexão VPN. Ela também possui dois endereços IPv4: um endereço IPv4 atribuído a um provedor de acesso à Internet para a interface de LAN e um endereço atribuído ao servidor VPN para a interface ponto-a-ponto.
Para garantir que o cliente VPN envie tráfego de rota padrão para a intranet pela conexão VPN, o Windows XP e o Windows Server 2003 modificam a tabela de roteamento aumentando a métrica da rota padrão existente e adicionando uma nova rota padrão com uma métrica menor que usa interface ponto-a-ponto. Esse comportamento padrão torna as localidades da intranet alcançáveis e quase todas as locações na Internet inalcançáveis para a duração da conexão VPN. É possível configurar um cliente VPN para dividir o encapsulamento e obter acesso simultâneo a localidades tanto da Internet quanto da intranet, basta não adicionar a rota padrão para a conexão VPN e adicionar rotas específicas para destinos da intranet. Entretanto, é um risco que a divisão de encapsulamento de clientes VPN possa rotear pacotes entre a Internet e a intranet. Para mais informações, visite microsoft.com/technet/community/columns/cableguy/cg1003.mspx.
O comportamento padrão de cliente VPN no Windows XP e no Windows Server foi desenvolvido para comportamento de envio de host fraco. A pesquisa de rota sempre utiliza a rota padrão para a conexão VPN porque possui a métrica mais baixa. Entretanto, quando você utiliza o comportamento de envio de host forte, a rota padrão usada para enviar tráfego depende do endereço de IP de origem no pacote. A pesquisa de rota para o tráfego do endereço IPv4 atribuído pelo ISP (provedor de acesso à internet) utilizará a rota da interface de LAN, tornando alcançáveis todas as localidades de Internet. A pesquisa de rota para o tráfego do endereço IPv4 atribuído pelo servidor VPN utilizará a rota padrão que utiliza a interface ponto-a-ponto, tornando alcançáveis todas as localidades de intranet. Entretanto, quando você utiliza o comportamento de envio de host forte, o cliente de VPN obtém uma configuração de encapsulamento dividida e acesso simultâneo tanto para a Internet quanto para a intranet, até mesmo para aplicativos sem privilégio de administrador para modificar diretamente a tabela de roteamento IPv4.
Para prevenir que o comportamento de envio de host forte crie, por padrão, uma configuração de encapsulamento dividida, o cliente de VPN no Windows Vista® e no Windows Server 2008 desabilita automaticamente as rotas padrão para interfaces de LAN quando a conexão VPN se completa. Esse comportamento garante que exista apenas uma rota padrão ativa na tabela de roteamento que utilize a interface ponto-a-ponto. Esse comportamento também garante que aplicativos sem privilégios de administrador não dividam o encapsulamento.
Por causa do fato de que o tráfego do computador-cliente da VPN deve ter origem no endereço IPv4 atribuído pelo servidor da VPN, esse comportamento fornece melhor isolamento da intranet em relação à Internet. Quando a conexão VPN terminar, as rotas padrão são novamente habilitadas.
Você pode controlar esse comportamento com o comando:
netsh interface ipv4 set interface [InterfaceNameOrIndex]
ignoredefaultroutes=enabled|disabled

Joseph Davies é redator técnico da Microsoft, ensina e escreve sobre assuntos relacionados a sistemas de rede do Windows desde 1992. Ele tem cinco livros publicados pela Microsoft Press e é autor da coluna online mensal da TechNet, The Cable Guy.


 Windows PowerShell: Protegendo o shell
Windows PowerShell
Protegendo o shell
Don Jones

Quando a equipe do Windows PowerShell sentou para criar um novo shell e a palavra "scripts" flutuou pela mesa, os suspiros de desalento provavelmente foram ouvidos por toda a cidade de Redmond. Afinal, os esforços anteriores da Microsoft dispensados aos scripts — estou falando do VBScript — não foram exatamente à prova de problemas. Um
modelo de execução excessivamente permissivo, combinado a uma predileção da maioria dos usuários de se conectar como administrador pleno, abriu o caminho para o desastre.
"Certamente", as pessoas presentes à primeira reunião do Windows PowerShell™ devem ter pedido, "não vamos passar por tudo aquilo novamente". E eles não passaram. A Microsoft melhorou muito a sua reputação em segurança, em grande parte porque começou a pensar nela em primeiro lugar em vez de ser a última preocupação no ciclo de desenvolvimento de um produto. Essa filosofia fica muito evidente no Windows PowerShell.

Por que os meus scripts não são executados?
Instale o Windows PowerShell em um computador novo e clique duas vezes em um arquivo .ps1: isso abrirá o Bloco de Notas, e não o Windows PowerShell. Isso acontece porque a extensão de nome de arquivo .ps1 — usada para scripts do Windows PowerShell — não possui uma associação com o próprio shell. Em outras palavras, você não pode executar um script simplesmente clicando duas vezes sobre ele. A única forma de executar um script é abrir o Windows PowerShell, digitar o nome do script e pressionar Enter.
Na verdade, simplesmente digitar o nome do script também não é o suficiente. Você pode ver na Figura 1 que há um arquivo Demo1.ps1 na pasta atual, mas digitar demo1 e pressionar Enter resulta em um erro: "O termo 'demo1' não é reconhecido como cmdlet, função, programa operável ou arquivo de script." Por que isso acontece? Afinal, o arquivo está bem ali.
Figura 1 Para evitar o seqüestro de comando, o Windows PowerShell exige um caminho para o seu script.
Figura 1 Para evitar o seqüestro de comando, o Windows PowerShell exige um caminho para o seu script.
Esse é outro aspecto do modelo de segurança do Windows PowerShell. Usuários maliciosos normalmente tentam criar em outros shells um script com o mesmo nome de arquivo de um comando interno. Assim, por exemplo, se você quisesse que um usuário executasse o seu script, poderia chamá-lo de Dir.ps1 e soltá-lo e uma pasta. Se você convencesse o usuário a digitar Dir e pressionar Enter, o seu script seria executado no lugar do comando Dir esperado. Essa técnica é chamada de seqüestro de comando. No Windows PowerShell, você sempre terá de oferecer um caminho para script, o que protege bem o Windows PowerShell do seqüestro de comando.
A execução de demo1 não funciona porque não há um caminho, mas executar ./demo1 funciona. Isso acontece porque agora um caminho foi especificado — a pasta atual. É menos provável que essa linha de comando seja confundida com um comando interno, já que você nunca digitaria esse tipo de caminho se estivesse se referindo a um comando interno. Assim, exigir um caminho ajuda o Windows PowerShell a evitar o seqüestro de comando e a confusão sobre o que poderia acontecer ao pressionarmos Enter.

Uma diretiva para a execução de scripts
Então você tem uma cópia recém-instalada do Windows PowerShell, está usando a sintaxe apropriada e tenta executar um script. Para a sua surpresa, é exibida outra mensagem de erro, informando que o Windows PowerShell não pode executar scripts. O quê??? Bem-vindo à Diretiva de Execução do shell.
Você pode ver qual é a Diretiva de Execução atual ao executar Get-ExecutionPolicy no shell. Por padrão, ela é definida como Restricted, o que significa simplesmente que os scripts não serão executados. Nunca. Para ninguém. Por padrão, o Windows PowerShell só pode ser usado interativamente em vez de executar scripts. Você pode usar o cmdlet Set-ExecutionPolicy para escolher uma das quatro configurações possíveis da Diretiva de Execução:
  • Restricted, o padrão, não permite a execução de qualquer script.
  • AllSigned só executa scripts confiáveis (falarei mais sobre isso em instantes).
  • RemoteSigned executa scripts locais sem exigir que eles sejam confiáveis; no entanto, scripts baixados da Internet devem se tornar confiáveis antes que você possa executá-los.
  • Unrestricted permite que todos os scripts sejam executados, até os não confiáveis.
Francamente, AllSigned é a menor configuração que qualquer computador de produção deve ter. Acho que RemoteSigned pode ser útil em ambientes de desenvolvimento e de testes, mas não é, necessariamente, para o usuário típico. E eu não vejo nenhuma utilidade para a configuração Unrestricted e não me incomodaria em vê-la fora de alguma versão futura do Windows PowerShell.

É uma questão de confiança
O seu computador foi pré-configurado para confiar em determinadas Autoridades de Certificação raiz — ou seja, servidores que emitem certificados digitais. A Figura 2 mostra o aplicativo Opções da Internet do Painel de Controle, que lista as autoridades de certificação raiz confiáveis. No Windows Vista®, essa lista é bem curta e inclui somente algumas das maiores autoridades de certificação raiz comerciais. Em compensação, a lista padrão do Windows® XP é ampla e inclui muitas autoridades de certificação raiz das quais eu nunca ouvi falar. Quando uma autoridade de certificação raiz está nessa lista, essencialmente você está dizendo que confia na empresa que opera a autoridade de certificação raiz e que ela faz um bom trabalho ao verificar a identidade de alguém antes de emitir um certificado digital.
Quando você obtém um certificado digital de Classe III — comumente chamado de certificado de assinatura de código — a autoridade de certificação (que pode ser uma autoridade comercial ou privada que exista em sua organização) precisa verificar a sua identidade. Esse certificado digital é como um passaporte ou carteira de identidade eletrônicos. Antes de me dar uma identificação que diz que eu sou o Don Jones, por exemplo, a autoridade de certificação precisa executar algumas etapas para garantir que eu sou realmente Don Jones. Quando utiliza o seu certificado para assinar digitalmente um script do Windows PowerShell, o que pode ser feito por meio do cmdlet Set-AuthenticodeSignature, você está assinando o seu nome no script. É claro que, se você for capaz de obter um certificado falso com o nome de outra pessoa, poderá assinar o nome dela no script e é por isso que é tão importante que somente as autoridades de certificação confiáveis estejam na lista da Figura 2.
Figura 2 Autoridades de certificação raiz confiáveis padrão no Windows Vista
Figura 2 Autoridades de certificação raiz confiáveis padrão no Windows Vista
Quando o Windows PowerShell verifica se um script é confiável — o que acontece quando é configurado com as Diretivas de Execução AllSigned e RemoteSigned — ele faz três perguntas:
  • Este script está assinado? Se não estiver, ele não será confiável.
  • A assinatura está intacta? Em outras palavras, o script mudou desde que foi assinado? Se a assinatura não estiver intacta, o script não será confiável.
  • A assinatura foi criada com um certificado digital emitido por uma autoridade de certificação raiz confiável? Se não foi, o script não será confiável.
CMDLET do mês: Set-AuthenticodeSignature
Set-AuthenticodeSignature é a chave para assinar digitalmente os scripts do seu Windows PowerShell, permitindo que você utilize a diretiva de execução mais segura do shell, AllSigned. Para usar esse cmdlet, você deve começar com outro — Get-ChildItem — que busca um certificado de assinatura de código instalado:
$cert = Get-ChildItem –Path cert:\CurrentUser\my –codeSigningCert
É preciso substituir o caminho do arquivo por um que aponte para um certificado instalado — qualquer um que possa ser acessado por meio da unidade cert:. Após o carregamento do certificado, execute isto para assinar um script:
Set-AuthenticodeSignature MyScript.ps1
–cert $cert
É claro que você terá de oferecer um caminho completo para o seu arquivo de script .ps1. O shell adicionará um bloco de assinatura ao arquivo.

Como a confiança pode aumentar a segurança? Sim, um hacker poderia escrever um script malicioso, assiná-lo e convencer alguém em seu ambiente a executá-lo. Como o script está assinado, ele será executado. Mas porque estava assinado, você poderá usar a assinatura para encontrar a identidade do autor e tomar a ação cabível (como chamar as autoridades responsáveis). No entanto, a pessoa teria de ser extremamente estúpida para criar um script malicioso e colocar seu nome verdadeiro nele!
É claro que, se um usuário malicioso for capaz de obter um certificado para a identidade de outra pessoa — digamos, de uma autoridade de certificação que não possui um processo de verificação de identidade muito bom — você não seria capaz de usar a assinatura para identificar o verdadeiro culpado. É por isso que as autoridades de certificação raiz em que você confia devem possuir um processo de verificação de identidade considerado satisfatório.
Se você usar a configuração da Diretiva de Execução AllSigned, terá de assinar digitalmente todos os scripts que criar antes que eles possam ser executados. O cmdlet Set-AuthenticodeSignature é muito fácil de usar, mas ainda assim isso representa um incômodo. É aqui que o software de terceiros pode ser conveniente. Eu recomendo que você selecione um editor de scripts ou um ambiente de desenvolvimento visual que assine automaticamente todos os seus scripts usando o certificado especificado. Dessa forma, a utilização de assinaturas será transparente e não exigirá um esforço extra. Se você quiser algumas sugestões de editores e de ambientes de desenvolvimento que oferecem suporte a esse recurso, visite alguns dos fóruns online sobre scripts (como o meu site, em ScriptingAnswers.com) e pergunte aos outros fãs do Windows PowerShell o que eles estão usando.
Depois de obter um certificado, você também pode executar o código de uma linha a seguir para assinar todos os scripts de um determinado local:
Get-Childitem *.ps1 | %{Set-AuthenticodeSignature $_.fullname $cert}

Protegido de forma centralizada
A Diretiva de Execução do Windows PowerShell pode, obviamente, ser configurada de computador em computador. Mas essa não é uma boa solução para ambientes corporativos. Em vez disso, você poderá usar a Diretiva de Grupo (os Modelos Administrativos do Windows PowerShell podem ser baixados de go.microsoft.com/fwlink/?LinkId=93675). Basta soltar o arquivo em um GPO (Objeto de Diretiva de Grupo) que afete todo o seu domínio e defini-lo como Restricted. Dessa forma, não importa onde o Windows PowerShell seja instalado, você poderá ter certeza de que os scripts não serão executados. Então, você poderá aplicar uma configuração mais permissiva (digamos, AllSigned) somente nos computadores que executarão scripts (como a sua própria estação de trabalho).

Credenciais alternativas
Ao contrário de qualquer linguagem de script administrativa anterior feita para Windows, o Windows PowerShell vem preparado até mesmo para lidar com credenciais alternativas de uma forma segura. Por exemplo, o cmdlet Get-WMIObject possui um parâmetro –credential, que permite a você especificar uma credencial alternativa para conexões WMI remotas. O parâmetro aceitará um nome de usuário mas não uma senha, impedindo que você codifique senhas confidenciais em um script de texto não criptografado. Em vez disso, quando você fornece um nome de usuário, o Windows PowerShell solicitará a senha usando uma caixa de diálogo. Se você planejar usar uma credencial alternativa novamente, poderá armazenar as informações de autenticação usando o cmdlet Get-Credential:
$cred = Get-Credential DOMAIN\USER
A senha será imediatamente solicitada e a credencial final será armazenada na variável $cred. Assim, a variável $cred poderá ser passada para o parâmetro –credential sempre que necessário. É possível até usar os cmdlets ConvertTo-SecureString e ConvertFrom-SecureString para converter a credencial em uma cadeia de caracteres criptografada ou para converter uma cadeia de caracteres anteriormente criptografada em uma credencial.
O problema disso é que a sua chave de criptografia termina sendo armazenada em um script de texto não criptografado, anulando totalmente a segurança. Em vez de fazer isso, adicione uma chamada a Get-Credential ao seu perfil do Windows PowerShell. Em seguida, quando o Windows PowerShell for executado, um nome de usuário e senha, armazenados em uma variável chamada $cred, serão imediatamente solicitados a você. Dessa forma, você sempre terá uma variável $cred disponível no shell para representar uma conta de administrador de domínio. E nunca terá de se preocupar com o armazenamento dessa credencial em outro local — já que ela será recriada sempre que o shell for aberto, não há necessidade de armazená-la.

Seguro por padrão
Por padrão, o Windows PowerShell é instalado e definido com as configurações mais seguras que pode haver para um shell administrativo que oferece suporte a scripts. A menos que você altere essas configurações, o Windows PowerShell permanecerá tão seguro quanto possível. Em outras palavras, tudo o que reduzir a segurança do Windows PowerShell será um resultado da sua decisão e das suas ações. Dessa forma, antes de alterar qualquer um dos padrões — reconfigurar associações de extensão de arquivo, alterar a Diretiva de Execução e assim por diante — verifique se você compreende totalmente as conseqüências de seus atos e esteja preparando para assumir a responsabilidade pelas mudanças.

Don Jones é o maior especialista em scripts da SAPIEN Technologies e instrutor do ScriptingTraining.com. Entre em contato com ele pelo seu site, ScriptingAnswers.com.


 Ei, Equipe de Scripts!: &#201; poss&#237;vel salvar esta rela&#231;&#227;o?
Ei, Equipe de Scripts!
É possível salvar esta relação?
A Equipe de Scripts da Microsoft
Faça download do código deste artigo: HeyScriptingGuy2007_09.exe (150KB)

As relações são importantes. Mas como justamente a Equipe de Scripts saberia disso? Para começar, nós assistimos muita TV, e na TV sempre se diz que as relações são importantes.
E não é só nas novelas e nos filmes que passam sempre na TV. Por exemplo, o comercial de uma empresa de empréstimos pessoais incentiva a fidelidade dos clientes. Será porque eles estão dispostos a emprestar dinheiro a pessoas que provavelmente não deveriam mesmo conseguir um empréstimo? Não. Será porque vão cobrar juros que chegam a 900% ao ano sobre o empréstimo? Claro que não. É porque essa empresa de empréstimos cria uma relação pessoal com você. Como diz o comercial, "as relações são importantes".
Observação: é claro que estamos chorando — e não temos vergonha. Afinal, é preciso que o indivíduo seja totalmente frio e insensível para não derramar uma lágrima quando pensa nos laços profundos e duradouros que tem com a sua empresa de empréstimos pessoais.
Claro que sabemos o que você está pensando: "Nossa, se as relações são importantes para as empresas de empréstimos pessoais, então devem ser mesmo muito importantes para quem escreve scripts que interagem com bancos de dados". E o fato é que as relações deveriam ser mesmo importantes para as pessoas que escrevem esses scripts. Só que, infelizmente, esses criadores de scripts nem sempre percebem a importância das relações. Mas tudo bem, porque na coluna deste mês vamos acertar isso.
Sabemos que muitos administradores de sistemas usam bancos de dados, em geral como uma maneira de acompanhar o inventário de hardware. O problema é que muitos desses bancos de dados são configurados de forma aquém do ideal. Suponha, por exemplo, que você precise de um banco de dados para acompanhar as unidades de disco conectadas a todos os seus computadores. Se não tiver algum conhecimento sobre a criação de bancos de dados, é bem provável que crie um banco de dados com uma só tabela como o da Figura 1.
Figura 1 Um banco de dados com uma só tabela
Figura 1 Um banco de dados com uma só tabela
Como você pode ver, trata-se de um design muito simples: há um campo para o nome do computador e alguns campos Sim/Não usados para indicar se o computador tem as unidades C: e D:. E é só isso. Claro, limpo e direto ao ponto.
Então, o que há de errado com esse banco de dados? Para falar a verdade, quase tudo. Se você tem certeza de que nenhum computador tem mais de duas unidades de disco, o design (quase) funcionará. Mas o que acontecerá se você tiver um computador com três unidades de disco? Nesse caso, você precisará adicionar outro campo para acompanhar a unidade E. Tudo bem, mas e se um computador tiver onze unidades de disco? E se você quiser acompanhar as propriedades de cada unidade? Suponha, por exemplo, que você queira acompanhar o tamanho total de cada unidade. Nesse caso, você precisará de um campo Drive_C_Size. E de um campo Drive_D_Size. E de um campo Drive_E_Size... Você já entendeu (e tomara que você não queira também controlar o espaço disponível em disco, o tipo de conector do disco, se as cotas de disco foram habilitadas na unidade e assim por diante).
É preciso ter em mente a seguinte regra: sempre que uma entidade puder ter mais de uma unidade de alguma coisa (como um computador, que pode ter mais de uma unidade de disco), esse design de "arquivo simples" (uma só tabela) não será recomendável. É claro que, no caso das unidades de disco, você considera possível que funcione; afinal, você terá apenas uma quantidade finita de unidades conectadas a um computador. Mas e se você quiser consultar seu banco de dados e obter uma lista de todas as unidades de disco de 100 gigabytes ou mais? Como seria possível fazer algo assim? Primeiro, você precisaria procurar as unidades de 100 gigabytes no campo Drive_C_Size; depois, seria preciso procurar a mesma coisa no campo Drive_D_Size, no campo Drive_E_Size... No fim das contas, não é uma abordagem muito eficaz. Mas qual é a alternativa? Se você não pode usar um banco de dados de arquivo simples, o que pode usar?
É simples: um banco de dados relacional. Os bancos de dados relacionais são criados, entre outras coisas, para lidar com relações um-para-muitos (por exemplo, um computador que pode ter várias unidades de disco). E, antes que você pergunte, não é preciso comprar nada novo para poder usar um banco de dados relacional. Se você já tem um banco de dados de qualquer tipo (Microsoft® Access™, SQL Server™, Oracle etc.), é provável que já tenha um banco de dados relacional. Não é preciso comprar nada; basta que você saiba duas coisas: 1) como configurar uma relação entre duas tabelas no banco de dados; e 2) como escrever um script capaz de tirar proveito dessa relação.
Observação: de acordo com a TV, você nunca deve tentar tirar proveito de uma relação. Mas aqui é diferente.
Como esta coluna não se chama Ei, Equipe de Design de Bancos de Dados!, não vamos gastar muito tempo discutindo o design de bancos de dados. Em vez disso, vamos apenas mostrar um design muito simples de banco de dados relacional, que nos permitirá abordar a escrita de consultas relacionais. Nesse banco de dados, tempos duas tabelas. A primeira é denominada Computers e consiste em dois campos: ComputerName e SerialNumber. O campo ComputerName é onde armazenamos o nome do computador; o campo SerialNumber é onde armazenamos — ah, você já sabe? Isso mesmo, o número de série.
Então, onde colocamos as informações sobre a unidade de disco? Na segunda tabela, denominada DiskDrives. Essa tabela contém três campos auto-explicativos: SerialNumber, DriveLetter e DriveSize.
O campo principal aqui é SerialNumber. Se esse nome de campo parece familiar, é mesmo: temos exatamente o mesmo campo na tabela Computers. E não se trata de mera coincidência; é proposital. Para estabelecer uma relação entre as tabelas, precisamos de um campo que apareça nas duas; é assim que podemos saber quais unidades de disco pertencem a quais computadores.
Por que vinculamos as duas tabelas usando o número de série e não, digamos, o nome do computador? Na verdade, há um bom motivo para isso: os nomes de computadores podem mudar (e mudam com freqüência). Os números de série, em geral, não mudam.
Mas chega de conversa. Vamos examinar a Figura 2, um script capaz de pesquisar nas duas tabelas e recuperar uma lista das unidades de disco pertencentes a cada computador. A Figura 3 mostra o tipo de dados que o script retorna.
Figure 3 Resultados da pesquisa (Close Figure 3)
atl-ws-01
C:

atl-ws-01
D:

atl-ws-01
E:

atl-ws-02
C:

atl-ws-02
D:
Figure 2 Pesquisando nas tabelas (Close Figure 2)
Const adOpenStatic = 3
Const adLockOptimistic = 3

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")

objConnection.Open _
 "Provider = Microsoft.Jet.OLEDB.4.0; " & _
 "Data Source = c:\scripts\test.mdb"

objRecordSet.Open "SELECT Computers.*, DiskDrives.* FROM Computers " & _
 "INNER JOIN DiskDrives ON Computers.SerialNumber = DiskDrives.SerialNumber " & _
 "ORDER BY Computers.ComputerName, DiskDrives.Drive", objConnection, adOpenStatic, _
  adLockOptimistic

objRecordSet.MoveFirst

Do Until objRecordset.EOF
 Wscript.Echo objRecordset.Fields.Item("ComputerName")
 Wscript.Echo objRecordset.Fields.Item("Drive")
 Wscript.Echo
 objRecordset.MoveNext
Loop

objRecordSet.Close
objConnection.Close
Não vamos abordar os conceitos básicos da conexão e do trabalho com bancos de dados na coluna deste mês. Se você é iniciante em script de bancos de dados, vale a pena consultar o webcast "Script de bancos de dados para administradores de sistemas" (go.microsoft.com/fwlink/?LinkId=22089) da Equipe de Scripts. Diremos apenas que estamos conectados a um banco de dados Access (C:\Scripts\Test.mdb) e trabalhando com tabelas relacionais denominadas Computers e DiskDrives. Isso deve ficar bem claro a partir do script.
Diremos também que você precisa fazer uma pequena alteração para que isso funcione no Access 2007: é importante que Provider seja alterado de Microsoft.Jet.OLEDB.4.0 para Microsoft.ACE.OLEDB.12.0, da seguinte forma:
objConnection.Open _
 "Provider = Microsoft.ACE.OLEDB.12.0; " & _
 "Data Source = c:\scripts\test.accdb"
É isso. Agora, nos concentraremos na consulta SQL para recuperar dados das duas tabelas:
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "INNER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "ORDER BY ComputerName, Drive", _
 objConnection, adOpenStatic, adLockOptimistic
Complicado? Talvez seja um pouco. Então, vejamos se conseguimos dividir isso em partes e tornar mais fácil de entender.
A primeira parte da nossa consulta, na verdade, é bem simples. Queremos selecionar todos os campos das duas tabelas: Computers e DiskDrives. Por isso, usamos um pouco de SQL:
SELECT Computers.*, DiskDrives.*
Não é tão difícil; nem é preciso dizer que o asterisco funciona como um caractere curinga, que significa "tudo".
Se você já escreveu consultas SQL (ou se já escreveu consultas WMI, ou Instrumentação de Gerenciamento do Windows®, que usam um subconjunto da linguagem de consulta SQL), então conhece a rotina: depois de especificar os itens que deseja selecionar, você especifica onde deseja selecionar esses itens. Temos, assim, a próxima peça do quebra-cabeça da nossa consulta:
FROM Computers INNER JOIN DiskDrives ON Computers.SerialNumber = DiskDrives.SerialNumber
Não deixe que isso o desanime. É mesmo mais complicado do que uma instrução FROM típica, mas há um bom motivo para isso. Afinal, em uma consulta SQL típica, selecionamos dados apenas em uma tabela; agora, vamos selecionar dados em duas tabelas de uma só vez.
Vamos examinar a sintaxe em mais detalhes para ver como funciona. Como você pode ver, pedimos ao script para selecionar dados nas tabelas Computers e DiskDrives. Observe, no entanto, que não usamos a palavra "and"; em vez disso, usamos o termo INNER JOIN. Esse termo define o tipo de relação e, conseqüentemente, descreve como será feita a junção das informações de duas tabelas separadas em um só conjunto de registros (claro que há outros tipos de junções; trataremos deles mais adiante).
Como já deixamos implícito, cabe a nós especificar o tipo de relação existente entre as nossas tabelas. Também cabe a nós especificar exatamente como as tabelas se relacionam. É o que faz o trecho de código a seguir:
ON Computers.SerialNumber = DiskDrives.SerialNumber
O que estamos fazendo é definir como será a junção das tabelas. Os registros serão agrupados sempre que o campo SerialNumber na tabela Computers corresponder ao campo SerialNumber na tabela DiskDrives. E se tivéssemos usado um outro campo (digamos, ComputerName) como nosso campo de junção? O código ficaria assim:
ON Computers.ComputerName = DiskDrives.ComputerName
Na verdade, os dois campos não precisam ter o mesmo nome; basta que contenham os mesmos dados. Usar o mesmo nome torna mais fácil identificar o campo relacional. Há apenas um pequeno detalhe do qual é preciso lembrar-se: como temos dois campos com o mesmo nome, precisamos usar sempre a sintaxe TableName.FieldName quando nos referimos a um desses campos. Isso significa usar código como este: Wscript.Echo obj- Recordset.Fields.Item("Computers.SerialNumber").
Isso é tudo de que precisamos. O resto da consulta simplesmente classifica os dados, primeiro por nome do computador e depois por unidade:
ORDER BY ComputerName, Drive
Viu, não foi tão ruim assim, foi? Precisamos fazer uma pequena pausa para falar sobre junções. Por que usamos uma junção interna na nossa consulta? É fácil. Uma junção interna retorna somente registros com valores correspondentes em cada tabela. Em outras palavras, suponha que temos o número de série 121989. Se esse número de série aparecer nas tabelas Computers e DiskDrives, os registros correspondentes serão retornados (logicamente, não basta que o número de série apareça em qualquer lugar; ele precisa estar no campo SerialNumber). Isso faz sentido? Muito bem.
Agora, suponha que temos um computador com o número de série 121989; no entanto, não há unidades de disco com esse número de série. Nesse caso, não serão retornados dados sobre o computador com o número de série 121989. Isso ocorre porque uma junção interna só retorna informações se um registro tiver valores correspondentes em cada uma das tabelas associadas.
Em outras palavras, uma consulta de junção interna retorna todos os computadores com discos rígidos. Ela não retornará os computadores que não têm discos rígidos, ou então os discos rígidos que não estão instalados em um computador. Isso é bom, pois geralmente é o que queremos. Mas e se você quiser uma lista dos computadores que não têm discos rígidos, ou então dos discos rígidos sem computadores? O que fazer?
É para isso que serve a junção externa (ah, então é para isso que serve a junção externa!). No momento, diremos que existem apenas dois tipos de junções externas: Left e Right. Em nosso banco de dados, tempos duas tabelas: Computers (considerada a tabela "esquerda", por ser a tabela mestra) e DiskDrives (considerada a tabela "direita", bem... por não ser a tabela mestra). Suponha que o conjunto de registros retornado precisa incluir todos os computadores, até mesmo aqueles que não têm discos rígidos instalados. Nesse caso, usamos a sintaxe LEFT OUTER JOIN e uma consulta como esta:
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "LEFT OUTER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "ORDER BY ComputerName, Drive", _
 objConnection, adOpenStatic, adLockOptimistic
Como você provavelmente já percebeu, uma junção externa esquerda retorna todos os registros na tabela esquerda, mesmo que não haja registros correspondentes na tabela direita. Então, obtemos todos os computadores, mas somente registros da tabela direita (unidades de disco) associados a um computador.
Existe também a possibilidade de querermos uma lista de todas as unidades de disco, inclusive aquelas que não estão instaladas em um computador. Como DiskDrives é a tabela direita na relação, usamos a sintaxe RIGHT OUTER JOIN desta forma:
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "RIGHT OUTER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "ORDER BY ComputerName, Drive", _
 objConnection, adOpenStatic, adLockOptimistic
Pensando bem no assunto, se DiskDrives é a tabela direita na relação, então Computers deveria ser conhecida como a tabela "marido" na relação, em vez de tabela esquerda. Afinal, como alguns membros da Equipe de Scripts já aprenderam com a dura experiência, o marido nunca é a entidade direita em uma relação.
Com a junção externa direita, obtemos todos os registros na tabela direita (todas as unidades de disco), mas somente computadores (registros na tabela esquerda) associados a uma unidade de disco.
Talvez isso não faça muito sentido no momento mas, se você treinar um pouco, entenderá como funciona. Se precisar de um banco de dados para fazer experiências, postamos um exemplo em microsoft.com/technet/scriptcenter/resources/tnmag/archive.mspx.
É importante mencionar que, sempre que você usar uma junção externa, deverá também, pelo menos, usar On Error Resume Next na próxima linha do seu script. Por quê? Bem, suponha que seja usada uma junção externa esquerda; nesse caso, é possível que sejam obtidos alguns computadores sem discos rígidos instalados. Tudo bem (afinal, é isso mesmo que queremos obter), pelo menos até encontrarmos esta linha de código, que retorna a letra da unidade:
Wscript.Echo objRecordset.Fields.Item("Drive")
Como não existe nenhum campo Drive neste computador específico, o script será interrompido por uma falha:
C:\Scripts\database.vbs(22, 9) Microsoft VBScript runtime error: Type mismatch
No entanto, se implementarmos On Error Resume Next, o script poderá ignorar o fato de que um computador não tem discos rígidos e seguir seu caminho. Como alternativa, você pode também usar um código como este para verificar o valor do campo Drive e adotar a ação adequada:
If IsNull(objRecordset.Fields.Item("Drive")) _Then
    Wscript.Echo "No disk drives installed."
Else
    Wscript.Echo _
      objRecordset.Fields.Item("Drive")
End If
Com esse código, verificamos se um valor Null é obtido, em vez de uma letra de unidade. Se isso acontecer, será recuperada a mensagem "No disk drives installed" (Nenhuma unidade de disco instalada). Se não obtivermos um valor Null, simplesmente será recuperado o valor do campo Drive. O resultado é uma saída como a mostrada na Figura 4.
Figure 4 Exibição dos resultados apropriados (Close Figure 4)
atl-ws-01
C:

atl-ws-01
D:

atl-ws-02
C:

atl-ws-02
D:

alt-ws-03
No disk drives installed.
Sem entrar em explicações muito detalhadas, vejamos mais algumas consultas. Eis aqui, por exemplo, uma consulta de junção interna que retorna uma lista de computadores e suas unidades de disco instaladas, desde que tenham mais de 50 gigabytes (supondo que os tamanhos das unidades sejam armazenados em gigabytes):
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "INNER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "WHERE DriveSize > 50 " & _
 "ORDER BY Computers.ComputerName, " & _
 "DiskDrives.Drive", objConnection, _
 adOpenStatic, adLockOptimistic
Como você pode ver claramente, a única coisa que fizemos foi adicionar uma cláusula WHERE padrão à consulta original:
WHERE DriveSize > 50
E se quiséssemos apenas informações sobre a unidade E dos computadores? Sem problemas. Basta adicionar a cláusula Where apropriada:
WHERE Drive = 'E:'
Eis aqui uma consulta um pouco mais complicada, que retorna uma coleção de computadores que não têm unidades de disco instaladas:
objRecordSet.Open _
 "SELECT Computers.ComputerName, " & _
 "DiskDrives.Drive " & _
 "FROM Computers LEFT JOIN DiskDrives " & _
 "ON Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "GROUP BY Computers.ComputerName, " & _
 "DiskDrives.Drive " & _
 "HAVING (DiskDrives.Drive) Is Null " & _
 "ORDER BY Computers.ComputerName", _
 objConnection, adOpenStatic, adLockOptimistic
Como avisamos, essa é um pouco mais complicada e, como não resta muito espaço, não vamos explicar como funciona. Mas funciona, e isso é o mais importante.
Bem, talvez a segunda coisa mais importante. Afinal, como já dissemos várias vezes, o que mais importa são as relações. Mas isso não significa que as relações não possam dar errado. Como diz Woody Allen no final de "Noivo neurótico, noiva nervosa", "Uma relação... é como um tubarão; precisa seguir em frente constantemente, ou então morre. E acho que temos aqui um tubarão morto". Ah, se o Woody conhecesse as junções internas e externas... Com essas técnicas de consulta, suas relações serão sempre bem-sucedidas!

A Equipe de Scripts da Microsoft trabalha para a — bem, é empregada da — Microsoft. Quando não está jogando/treinando/assistindo beisebol (e diversas outras atividades), ela administra o Script Center da TechNet. Confira no site www.scriptingguys.com.


 P&amp;R do Exchange: Instala&#231;&#227;o, di&#225;rio de mensagens, op&#231;&#245;es de armazenamento e muito mais
P&R do Exchange
Instalação, diário de mensagens, opções de armazenamento e muito mais
KC Lemson and Nino Bilic

P Estou executando a instalação do Exchange Server 2007 e preciso saber se posso ignorar a verificação de pré-requisitos. Não quero corrigir todos os problemas apontados pela verificação. Quero apenas executar a instalação e concluir o processo!

R Respondendo de forma direta, não, você não pode. É realmente necessário corrigir os problemas indicados pela verificação de pré-requisitos, se esses problemas impedem que a instalação continue, ou então você terá problemas a longo prazo no uso do Exchange.
Alguns administradores já tentaram editar o arquivo ExBPA.PreReqs.xml (que contém a lista de pré-requisitos para a instalação do Exchange 2007) e remover as verificações que causavam o bloqueio da instalação. Só que isso não funciona, pois o arquivo XML é assinado digitalmente e qualquer modificação em seu conteúdo torna a assinatura inválida.
Tudo isso se destina a impedir que você crie uma instalação que não funcione corretamente. Testamos o Exchange 2007 em diversos ambientes e descobrimos que algumas configurações funcionam melhor do que outras — e que algumas podem representar problemas sérios. Os pré-requisitos existem para garantir que a sua instalação tenha a máxima possibilidade de ser bem-sucedida, com base em nossas experiências e testes.
Se você realmente tiver um problema com a verificação de pré-requisitos do Exchange 2007 que esteja bloqueando a instalação no seu ambiente, crie uma ocorrência no suporte do Exchange.

P Onde encontro o log da instalação? Não consigo encontrá-lo na raiz da unidade C:.

R Todos os logs de instalação agora são armazenados no diretório %SYSTEMDRIVE%\ExchangeSetupLogs, o que, na maioria das instalações, significa C:\ExchangeSetupLogs. Você encontrará vários arquivos lá, sendo dois deles de grande interesse:
ExchangeSetup.log Esse log contém informações sobre as tarefas e os parâmetros usados quando a instalação foi executada. Quando as funções do servidor são configuradas, as informações sobre as tarefas executadas para configurar o servidor também são armazenadas nesse log. Também é aqui que você deve procurar a maioria das informações relacionadas à instalação do seu servidor. A instalação do service pack também será acrescentada a esse arquivo.
ExchangeSetup.msilog Esse arquivo contém informações sobre a fase de descompactação da instalação. Quando o Microsoft® Installer copia arquivos de um local temporário para os seus destinos, ele faz o registro nesse arquivo. Então, se você tem um problema possivelmente relacionado à capacidade de copiar ou acessar arquivos durante a instalação, esse log vai ajudá-lo.

P Sei que a verificação de pré-requisitos conta com os recursos do BPA (Best Practices Analyzer) do Exchange Server, então onde posso encontrar o relatório de pré-requisitos?
R Se você quer encontrar o relatório criado pelo BPA durante a verificação de pré-requisitos, procure nesta pasta:
%SYSTEMDRIVE%\Exchangesetuplogs\PreReqs
Os nomes de arquivo têm um formato padrão:
ExBPA.<dateandtime>.data.xml
Se você está tentando descobrir o que uma verificação específica de pré-requisito estava procurando, encontre o arquivo XML contendo a mensagem de erro que você viu e, acima da mensagem, você verá a definição da regra testada.
P Como faço para ler logs de instalação? Quais as opções disponíveis?
R Em geral, há duas formas de ler logs de instalação. Você pode executar o Get-SetupLog no Shell de Gerenciamento do Exchange, ou então simplesmente abrir o arquivo do log de instalação no Bloco de Notas ou no seu editor de texto favorito.
Se usar o Get-SetupLog, eis aqui um exemplo de como os avisos ou erros aparecerão:
Get-SetupLog c:\exchangesetuplogs\exchangesetup.log –error
Se quiser uma visualização melhor, você precisará dos scripts Out-HTML.ps1 e Out-IE.ps1, disponíveis no pacote de demonstração PowerShell Scriptacular para o Exchange 2007 (leia mais sobre isso em nosso blog, em msexchangeteam.com/archive/2006/12/27/431998.aspx).
Quando obtiver os scripts, coloque-os na pasta de scripts do Exchange (por padrão, C:\Arquivos de programas\Microsoft\Exchange Server\Scripts) e execute o seguinte:
Get-SetupLog –tree:$false –error:$false | Where { $_.status –eq "Error" } | select datetime, depth, description, status | Out-HTML | Out-IE
Isso abrirá uma janela do navegador de fácil navegação, com uma exibição em HTML dos erros ocorridos durante a instalação (veja a Figura 1).
Figura 1 O Out-HTML e o Out-IE facilitam a leitura da exibição dos seus logs de instalação
Figura 1 O Out-HTML e o Out-IE facilitam a leitura da exibição dos seus logs de instalação
Por outro lado, se você optar por exibir o exchangesetup.log usando o Bloco de Notas, eis aqui algumas dicas:
  • Para encontrar o início da instalação executada, procure: [0] Iniciando a Instalação do Microsoft Exchange 2007.
  • Para encontrar o final da instalação executada, procure: [0] Fim da Instalação.
  • As principais tarefas da instalação são separadas por: [0] **************.
  • Para encontrar a conta que executou a instalação, procure: [0] Usuário conectado.
  • Se quiser saber qual foi o controlador de domínio usado durante a instalação, procure: [0] A instalação usará o controlador de domínio.
De forma geral, quando você analisar logs de instalação usando o Bloco de Notas, comece pelo final do arquivo e vá retrocedendo no tempo para descobrir qual foi o problema. Normalmente, os erros estão entre as últimas informações registradas no log de instalação.

P Posso usar a Unificação de Mensagens do Exchange 2007 com a minha PBX?

R Provavelmente sim. Consulte microsoft.com/technet/prodtechnol/exchange/telephony-advisor.mspx para obter uma lista dos gateways VoIP e das PBXes com suporte. Qualquer alteração na lista de produtos com suporte será acrescentada a essa página.
P Tenho um cliente que executa o Small Business Server 2003 com o Exchange e a política da empresa exige o monitoramento de todos os e-mails. Para realizar o monitoramento, quero enviar uma cópia de todas as mensagens recebidas e enviadas para a conta do administrador. Como posso fazer isso?
R Você precisa do diário de mensagens, que permite manter uma cópia de todas as mensagens enviadas ou recebidas por um banco de dados de caixa de correio específico em uma caixa de correio de diário separada. Existem diversas opções que permitem configurar o nível de detalhamento das cópias registradas no diário (por exemplo, você deseja capturar os destinatários do campo Cco?). Há ainda uma ferramenta adicional que você pode baixar para obter alguns recursos avançados, em go.microsoft.com/fwlink/?LinkId=93725. O registro no diário no Exchange 2003 é habilitado em nível de banco de dados, de forma que todos os usuários daquele banco de dados sejam registrados no diário. Depois de criar a caixa de correio onde serão mantidas as mensagens registradas no diário, vá para as propriedades do armazenamento da caixa de correio, no Gerenciador do Sistema do Exchange, e marque a opção para arquivar as mensagens enviadas ou recebidas pelas caixas de correio naquele armazenamento. Dependendo das políticas da sua empresa, talvez você queira também habilitar o gerenciador de caixas de correio para limpar automaticamente da caixa de correio de diário as cópias antigas do diário.
O Exchange 2003 tem outro recurso semelhante ao registro no diário, denominado coletor de arquivo morto. Ao contrário do registro no diário, que salva cópias das mensagens em outra caixa de correio no Exchange, o arquivo morto salva as mensagens em uma pasta especificada no disco rígido do servidor. Por que escolher um método e não o outro? O registro no diário geralmente se destina a cenários de conformidade a normas, mas o coletor de arquivo morto pode ser útil, por exemplo, caso você queira capturar todas as mensagens que chegam ou saem para a Internet.
O Exchange 2007 simplifica esses cenários de forma considerável. Você pode facilmente fazer o registro no diário por usuário ou por DL (lista de distribuição). Se não quiser que os usuários saibam que seus e-mails estão sendo registrados no diário, você pode ocultar essa DL da Lista de Endereços Global (observe que isso não é igual à associação oculta a uma DL). Pode também configurar um atributo personalizado para os usuários e criar um Grupo de Distribuição Baseado em Consulta — também denominado DDL (Lista de Distribuição Dinâmica) — para associar todos os usuários ao atributo personalizado. Se quiser registrar todas as mensagens da organização no diário em um mesmo local, deixe em branco o campo de destinatário ao criar a regra de registro no diário. Observe também que, se você quiser usar um registro no diário que não seja por banco de dados no Exchange 2007, precisará da Enterprise CAL (Licença de Acesso para Cliente) para os usuários. Você encontrará mais informações em microsoft.com/exchange/howtobuy/licensingFAQ.mspx. Se não quiser a CAL nem qualquer um dos outros recursos, poderá continuar usando o recurso de registro no diário por banco de dados do Exchange 2003. Por fim, leia o artigo de David Strome na edição de dezembro de 2006 da TechNet Magazine, intitulado "Registros no diário mais sofisticados no Exchange 2007", em technetmagazine.com/issues/2006/12/journaling.

P Todos os meus usuários executam o Microsoft Office 2003 e não temos planos de migrar para o 2007 Office system até que seja feita uma atualização de hardware, em 2008. No entanto, segundo o que tenho ouvido, receio que os usuários possam perder alguns recursos por causa disso. Eles poderão usar a Unificação de Mensagens?

R Certamente. No Office 2003, os usuários com a Unificação de Mensagens habilitada podem receber mensagens da caixa postal e faxes em suas caixas de correio, e também ligar para acessar a caixa de correio a partir de qualquer telefone. Se você não fizer a atualização para o Outlook 2007, perderá o recurso fornecido pela Unificação de Mensagens que permite configurar a caixa postal na guia Opções do Outlook, e também o formulário personalizado especial que mostra uma mensagem da caixa postal no Outlook e permite reproduzi-la internamente, sem precisar iniciar um media player separado. Também não estará disponível o recurso que permite gravar anotações de áudio e salvá-las junto com a mensagem da caixa postal. Mas, mesmo sem o Outlook 2007, os usuários com a Unificação de Mensagens habilitada poderão usar o OWA 2007 para acessar as configurações de Unificação de Mensagens (na página de opções do OWA), além de usar o formulário personalizado para a caixa postal no OWA.

P A minha empresa já tem uma SAN (rede de área de armazenamento) e eu gostaria de conectar a ela o Exchange 2007. No entanto, tenho ouvido falar muito em DAS (armazenamento de acesso direto) e imagino se deveria optar por ele. O que vocês acham?

R Não há uma resposta certa ou errada para essa pergunta. Na verdade, depende das políticas e dos cenários da sua empresa (especialmente se você já tem uma SAN). Se você está pensando em comprar uma nova SAN, acrescentar mais uma ou fazer uma atualização, é altamente recomendável avaliar a opção pelo DAS. Eis algumas informações que devem ser levadas em conta: em junho de 2007, o departamento de TI da Microsoft implantou 17 servidores de caixas de correio Exchange 2007 para 40 mil caixas de correio (com cotas variando de 500 MB a 10 GB), tudo isso usando CCR (replicação contínua em cluster) com DAS. Até setembro, planejamos ter 35 servidores de caixas de correio Exchange 2007 com 152.500 caixas de correio em DAS. Então, caso esteja se perguntando se o DAS é adequado e viável em escala empresarial, pode ter certeza de que sim. O DAS tem sido fundamental para permitir ao departamento de TI da Microsoft aumentar as cotas dos usuários, diminuindo, ao mesmo tempo, os custos gerais de armazenamento. Você encontra mais informações sobre essa topologia, a implantação e a economia obtida em microsoft.com/technet/itshowcase/content/64bitexchange2007.mspx.
Embora, à primeira vista, possa parecer uma grande economia de armazenamento ter todos os seus servidores conectados à mesma SAN, essa opção não é isenta de risco. Por exemplo, um problema comum está relacionado aos diferentes cenários de uso do software conectado à SAN. Por exemplo, se você tem na SAN um aplicativo de RH que executa um processo em lotes todos os dias às 17h, esse pico de E/S pode afetar seriamente os usuários do Exchange. A ausência de uma E/S determinística é um problema comum em implantações de SAN compartilhadas.
Outra vantagem obtida com o DAS é a maior simplicidade no gerenciamento, pois ele não requer administradores de armazenamento dedicados nem equipamentos especiais. É incremental, fácil de comprar e de expandir quando necessário. E, em geral, é acessível o bastante para que você possa ter sobressalentes à disposição se quiser, sem que isso esgote seu orçamento.

P Instalei meu primeiro servidor Exchange 2007. Agora, quando tento me conectar a ele usando o Outlook 2003, recebo uma mensagem de erro indicando que o administrador bloqueou a minha versão do Outlook ("Seu administrador do Exchange Server bloqueou a versão do Outlook que você está usando. Entre em contato com o administrador para obter assistência."). Só que eu sou o administrador e não fiz esse bloqueio. O que pode estar acontecendo?

R Esse comportamento não é inesperado. Durante a instalação do Exchange 2007, o Assistente para Instalação pergunta se você está executando na sua organização o Outlook 2003 ou uma versão anterior, ou então clientes do Entourage (veja a Figura 2). Se você respondeu não a essa pergunta, talvez se depare com esse problema.
Figura 2 A pergunta sobre clientes herdados na instalação do Exchange 2007
Figura 2 A pergunta sobre clientes herdados na instalação do Exchange 2007
Para resolver esse problema depois de ter sido criado (com a instalação já concluída), basta criar um armazenamento de pasta pública usando o Console de Gerenciamento do Exchange ou o Shell de Gerenciamento do Exchange e reiniciar o serviço de Armazenamento de Informações. Nesse caso, é obrigatório reiniciar o serviço de Armazenamento de Informações. Os clientes herdados (Outlook 2003 e anteriores) não conseguirão estabelecer uma conexão com o servidor até que o serviço seja reiniciado.
Além disso, se você estiver executando a instalação autônoma do Exchange 2007, poderá usar a opção /EnableLegacyOutlook para especificar como deseja responder à pergunta sobre clientes herdados.

P Que importância teria para o Exchange 2007 se eu me conectasse ao servidor usando versões antigas do Outlook? Por que criar o armazenamento de pasta pública e reiniciar o serviço de Armazenamento de Informações corrige o problema?

R As respostas para essas perguntas giram em torno da presença do armazenamento de pasta pública. Caso você se lembre, o armazenamento de pasta pública, em versões anteriores do Exchange, é usado para armazenar, entre outras coisas, os dados de disponibilidade dos usuários. Quando um usuário herdado do Outlook se conecta ao servidor Exchange usando MAPI ou RPC sobre HTTP e publica algo em seu calendário, as informações sobre seu status de disponibilidade também são publicadas no servidor, em uma pasta pública especial denominada Schedule+. Essa é a única forma conhecida pelos clientes herdados do Outlook para publicar os dados de disponibilidade dos usuários no servidor. Na verdade, é a única forma conhecida pelas versões herdadas do Outlook para ler as informações de disponibilidade de outros usuários.
O Exchange 2007 sabe disso. Então, se não houver um armazenamento de pasta pública, o Exchange 2007 bloqueará as versões anteriores dos clientes. Se o Exchange 2007 permitisse a conexão de um cliente herdado, o cliente se depararia com erros freqüentes, pois o Outlook não poderia se conectar ao armazenamento de pasta pública para publicar os dados de disponibilidade. Com isso, a funcionalidade do cliente ficaria limitada, pois as pesquisas de disponibilidade que os usuários quisessem fazer (por exemplo, ao tentar agendar uma reunião com alguém) simplesmente não funcionariam. Também é por isso que criar o armazenamento de pasta pública resolve o problema, pois o servidor Exchange 2007 sabe que os clientes herdados podem usar a funcionalidade de publicação de disponibilidade, então é permitido o logon na caixa de correio.
A partir de tudo isso, você poderia concluir mais uma coisa: que os clientes do Outlook 2007 não precisam do armazenamento de pasta pública para publicar suas informações de disponibilidade. Isso é verdade, só que há mais um detalhe.
Sem nos aprofundarmos em excesso, digamos apenas que, se houver um armazenamento de pasta pública presente em um servidor Exchange 2007, até mesmo um cliente do Outlook 2007 publicará nele os dados de disponibilidade dos usuários. Isso ocorre para que os outros clientes, alguns possivelmente herdados do Outlook, possam consultar as informações de disponibilidade de um usuário do Outlook 2007. Se não estivessem no armazenamento de pasta pública, os clientes herdados não poderiam encontrar as informações sobre um usuário do Outlook 2007, pois nada preencheria com essas informações o armazenamento de pasta pública. No entanto, se o armazenamento de pasta pública não estiver presente, os clientes do Outlook 2007 não tentarão publicar dados de disponibilidade. Quando não há armazenamentos públicos e todos os clientes são pelo menos do Outlook 2007, é usado um outro mecanismo de consulta de informações de disponibilidade no qual os dados do calendário são lidos diretamente nas caixas de correio dos usuários, sem criar uma cópia dessas informações em qualquer outro local. Se quiser ler mais sobre o assunto, consulte as informações no Serviço de Disponibilidade do arquivo de ajuda do seu servidor ou na documentação online do Exchange, em go.microsoft.com/fwlink/?LinkId=69434.

P Acabo de ler o artigo 288894 da Base de Dados de Conhecimento, que trata do bloqueio de clientes MAPI usando uma chave do Registro (consulte support.microsoft.com/kb/288894). Verifiquei o Registro do meu servidor, mas essa chave não estava definida. Como o armazenamento executa esse bloqueio de versões de clientes herdados?

R Ótima pergunta! De fato, o Armazenamento de Informações do Exchange 2007 não utiliza o valor do Registro "Desabilitação de Clientes MAPI", mencionado no artigo da Base de Dados de Conhecimento, para bloquear clientes herdados. O motivo é a possibilidade de não existir um armazenamento de pasta pública. Se o armazenamento de pasta pública não estiver presente, nenhuma modificação na chave do Registro será capaz de desbloquear esses clientes.
O comportamento para bloquear clientes mais antigos do que o Outlook 2007 está simplesmente codificado no Armazenamento de Informações do Exchange 2007. Durante a inicialização do serviço, o armazenamento verifica a presença do armazenamento de pasta pública e, então, decide se somente o Outlook 2007 terá permissão para conectar-se ou se versões mais antigas também poderão estabelecer conexões com suas caixas de correio. Essa verificação ocorre apenas na inicialização. É por isso que você precisa reiniciar o serviço de Armazenamento de Informações para que a alteração entre em vigor, depois de criar o armazenamento de pasta pública.

KC Lemson é gerente de experiência do usuário do Exchange Server. No momento, ela se empenha em concluir o doutorado em uma famosa universidade não reconhecida.
Nino Bilic é gerente do programa de suporte para o Exchange Server. Ele está pensando em se tornar piloto de corrida profissional da Forza Motorsports 2.


 Security Watch: O impacto de longo prazo do Controle de Conta de Usu&#225;rio
Security Watch
O impacto de longo prazo do Controle de Conta de Usuário
Dr. Jesper M. Johansson

O problema de executar como um administrador é óbvio: qualquer malware que ataque usuários, ou os aplicativos executados por eles, terá controle total sobre 90 por cento dos computadores que infectar. O recurso UAC (Controle de Conta de Usuário) do Windows Vista é a resposta da Microsoft a um grande desafio de segurança — o fato de que mais de
90 por cento dos usuários que hoje utilizam a plataforma Windows executam programas com privilégios administrativos. Embora seja possível executar como um usuário padrão no Windows® XP — e eu tentei — isso pode ser extremamente penoso. Por exemplo, se você viaja com freqüência e utiliza o Windows XP, verá que, como usuário padrão, não poderá modificar o fuso horário do seu sistema.
O UAC é o recurso que deveria mudar tudo isso. Na verdade, essa é a primeira concepção errada. O UAC não é um recurso, somente; ele é uma coleção de recursos, e a maior parte deles não é particularmente óbvia. Não oferecerei uma análise profunda de todos os detalhes da implementação do UAC. Para isso, recomendo a leitura do artigo de Mark Russinovich publicado na edição de junho de 2007 da TechNet Magazine, que pode ser encontrado em technetmagazine.com/issues/2007/06/UAC.
Na verdade, espero oferecer neste artigo uma visão imparcial sobre o que UAC é e não é, e como ele deve afetar a maneira de gerenciar os seus sistemas que executam o Windows Vista®.

O que o UAC aparenta ser
O recurso mais visível do UAC é a caixa de diálogo de elevação, mostrada na Figura 1. Na verdade, se você perguntar para uma parcela representativa de usuários do Windows Vista o que é o UAC, é provável que a maioria mencione algo sobre a caixa de diálogo irritante.
Figura 1 A caixa de diálogo de aprovação do UAC para administradores em modo de aprovação de administrador.
Figura 1 A caixa de diálogo de aprovação do UAC para administradores em modo de aprovação de administrador.
Apesar da visibilidade e de todas as opiniões sobre o UAC, não acredito que a maior parte das discussões a respeito esteja relacionada ao que o UAC realmente é. Na verdade, parece haver uma verdadeira confusão por aí. Pessoas cultas postam em blogs e escrevem entradas em grupos de notícias e artigos com títulos como "O recurso mais irritante do Vista" e salientam quantas pessoas irão desativá-lo e porque ele é tão irritante.
Uma vez que poucas pessoas se incomodaram em compreender a lógica por trás do UAC, por que eu não inicio esta coluna examinando a sua função?

O que é o UAC
O UAC é uma tentativa de permitir que mais pessoas executem como usuários padrão. De certa forma, ele é a versão 2.0 desse esforço. A versão 1.0 veio primeiro com o Windows NT® 3.1 e permitia a um usuário se conectar como um não-administrador. Essa foi uma mudança radical do Windows 3.1 de 16 bits e nenhum de seus sucessores, o Windows 3.11, o Windows 95, o Windows 98 e o Windows Me, teve qualquer conceito de usuários com poucos privilégios. Se um não-administrador podia fazer alguma coisa de útil, isso dependia de uma série de fatores, mas até o Windows XP e o Windows Server® 2003, o menor privilégio de usuário variava de doloroso até inútil. O Windows Vista traz o primeiro conjunto de tecnologias que nos permite fazer a coisa certa com mais facilidade em relação aos privilégios de usuários interativos.
Embora seja correto alegar que o objetivo do UAC era oferecer algum nível de proteção para aplicativos em execução como administrador daqueles que não são administradores, essa não foi, sob hipótese alguma, a sua principal finalidade. A principal finalidade era nos colocar em um caminho onde mais usuários poderiam executar como usuários padrão, o que, por sua vez, forçaria os programadores a escrever mais programas que funcionassem para usuários padrão, reduzindo o número de situações em que os usuários precisariam da elevação. À medida que os desenvolvedores escreverem mais aplicativos compatíveis com o UAC, o número de solicitações de confirmação obtidas pelo usuário cairá e sua experiência será muito melhor. No processo, em condições ideais, terminaríamos em uma situação onde a maioria das pessoas não executaria como administrador e, esperançosamente, começaria a questionar algumas das solicitações de elevação obtidas. Se houver menos solicitações, é mais provável que os usuários passem a refletir sobre elas com mais cuidado antes de permiti-las.
Ou assim diz a teoria. Por extensão, sim, haveria menos malware, mas isso dependerá de os usuários deixarem o UAC habilitado, o que dependerá de os desenvolvedores escreverem software que funcione com ele, e de os usuários pararem de ver as solicitações como exercícios de cliques rápidos e realmente reflitam se a solicitação de elevação é legítima.
Para atingir o objetivo principal, aumentar o número de usuários que quase sempre podem executar como um não-administrador, o UAC foi criado para atingir alguns objetivos associados:
  1. Diminuir o número de cenários que exijam elevação para uma conta administrativa.
  2. Tornar a elevação consideravelmente mais fácil — automática, se possível — do que nas soluções anteriores, como usar runas.exe ou fazer logout de uma conta e login em outra. Em outras palavras, preencher a lacuna até os ISVs corrigirem seus aplicativos.
  3. Oferecer algum tipo de isolamento para os aplicativos que precisam ser executados com privilégios administrativos para protegê-los daqueles que não precisam.
  4. Permitir que certos aplicativos expostos sejam executados com ainda menos privilégios, sempre que possível.
Dois desses objetivos visam tornar a experiência do usuário de executar como um não-administrador tão agradável quanto possível. Ambos estão relacionados com a proteção de aplicativos que estão particularmente expostos.
O interessante é que somente dois deles estão relacionados ao recurso que é popularmente conhecido como UAC e somente um lida com a tarefa de elevação. Ainda assim, a elevação, quando um aplicativo solicita privilégios adicionais, é do que as pessoas reclamam, já que é a única manifestação realmente visível da coleção de tecnologias que compõe o UAC. O primeiro objetivo universal não está, de forma alguma, relacionado à elevação. A idéia era simplesmente permitir que mais pessoas executassem como não-administradores na maior parte do tempo. Na verdade, você poderia argumentar que a intenção é reduzir o número de eventos de elevação.
Os objetivos relacionados à tarefa de elevação são os de número 2 e 3. O objetivo número 2 trata de tornar a elevação mais fácil do que era no Windows XP e o número 3 versa sobre o oferecimento de algum nível de proteção para aplicativos executados com elevação. Os outros objetivos estão relacionados a questões totalmente diferentes. No entanto, todos eles exigiam mudanças no sistema operacional. O artigo de Mark Russinovich, mencionado anteriormente, detalha essas mudanças para aqueles que estejam interessados.
Como mencionei, existem muitas, muitas recomendações por aí para a desabilitação do UAC. É provável que alguns usuários façam isso sem nem mesmo experimentá-lo, e muitos mais comprarão seus computadores em alguma grande loja de departamentos, completo com uma versão do Windows Vista que já tenha o UAC desabilitado. Acho lamentável que revendedores estejam desabilitando recursos de segurança importantes do sistema operacional como parte de sua imagem de implantação padrão.
Infelizmente, muitos dos conselhos para a desativação do UAC se baseiam na experiência inicial. Durante a configuração do seu computador, você obterá um número razoável de solicitações à medida que for instalando programas e fazendo as mudanças necessárias. Você deve esperar uma experiência administrativa muito diferente quando o computador já estiver todo configurado e pronto. As primeiras semanas serão bem diferentes das semanas seguintes. Se você experimentar o UAC em um computador relativamente pronto, acho que verá que ele não é particularmente invasivo.

O que o UAC não é
O UAC não foi criado deliberadamente para ser o recurso mais irritante da história do Windows. Em vez disso, esse conjunto de tecnologias foi criado para nos colocar em um caminho em que os usuários não precisarão expor seus sistemas a código potencialmente malicioso com tanta freqüência, como têm feito nos últimos anos.
Em seu estado atual, o UAC não impedirá invasores realmente bons ou aqueles que são ajudados por invasores realmente bons. Se os bandidos não puderem achar qualquer outra forma de derrotar o UAC, é quase certo que eles recorrerão ao usuário para que faça isso por eles. Podendo escolher entre a segurança e um programa bobo qualquer, sabemos, pela nossa experiência, que o programa bobo vencerá sempre. Os usuários aprenderam a ignorar caixas de diálogo e assim o farão até conseguirmos ensiná-los a não fazer isso. Isso resulta de vários fatores, incluindo o fato de que existem caixas de diálogo de aviso demais, que as mensagens em si são inúteis e que muitos dos manuais para quaisquer dispositivos comprados pelos usuários incluem uma observação que diz: "clique em sim na caixa de diálogo de aviso de segurança para fechá-la".
O UAC não oferece segurança infalível. Na verdade, ele faz com que o bom e velho ataque de elevação de privilégio local seja novamente interessante. Esse é um tipo de ataque quase não é mais usado porque, no Windows, quase todo mundo é administrador e, portanto, elevar para outro administrador não faz muito sentido. Isso posto, o UAC muda definitivamente a natureza desses ataques e transforma as regras do jogo para algo parecido com o que acontece no UNIX há mais de 20 anos.
O UAC não impedirá que os bandidos furtem os seus dados pessoais. Os dados pessoais de um usuário podem ser acessados por ele a despeito de seus privilégios. Assim, um aplicativo, incluindo um malicioso, poderá acessar os dados. O UAC não muda isso, e não pode mesmo mudar. Ele não elimina a necessidade de sermos vigilantes, desconfiados e paranóicos — atributos que devemos incutir em nossos usuários sempre que pudermos.
O UAC não foi criado para proteger um aplicativo executado com privilégios elevados de todos os ataques de um aplicativo executado com privilégios normais na mesma sessão de login. Embora o UAC ofereça algum isolamento ao processo, seu objetivo não era manter aplicativos afastados uns dos outros.

O que andam falando por aí
A própria Microsoft contribui para a agitação em torno do UAC e para os mal-entendidos sobre o que ele faz. No Windows Vista Security Guide, por exemplo, o capítulo sobre proteção contra malware apresenta o UAC como a principal tecnologia para esse fim (microsoft.com/technet/windowsvista/security/guide.mspx). Ele recomenda a execução com o UAC ativado — na maior parte do tempo — e lista alguns pontos a serem considerados quando o UAC for usado para combater malware. Entretanto, eles evidentemente se esqueceram de um detalhe: o UAC não impede o malware e nem foi criado para isso.
Alguns dos mais brilhantes filósofos mundiais sobre segurança do Windows hoje, como Joanna Rutkowska, compreenderam a finalidade do UAC. De acordo com uma postagem sua, feita em um blog em 4 de fevereiro de 2007, o UAC "é um novo mecanismo de segurança apresentado pelo Vista, cujo principal objetivo é forçar os usuários a trabalharem usando contas restritas em vez de trabalharem como administradores" (theinvisiblethings.blogspot.com/2007/02/running-vista-every-day.html). Ela está certa, exceto que eu usaria o termo "permitir" em vez de "forçar".
Isso, no entanto, significa uma mudança importante na natureza de ataques comuns contra o Windows. Como mencionei anteriormente nesta coluna, as vulnerabilidades de privilégio local, quando um usuário pode se evoluir de um usuário padrão local para um administrador local, nunca foram particularmente interessantes na plataforma Windows.
Com o Windows Vista, a idéia é de que os usuários executem como usuários padrão e, repentinamente, a elevação do privilégio local começa a se tornar muito interessante. Infelizmente, também é aqui que nos deparamos com algumas das limitações do UAC. Lembre-se, não há isolamento efetivo; não existe um limite de segurança que isole processos no mesmo desktop. O sistema operacional inclui algumas medidas de proteção para manter as avenidas de comunicação óbvias e desnecessárias bloqueadas, mas seria impossível e indesejável bloquear todas. Portanto, a Microsoft não considera violações como o limite de segurança não existente como uma violação de segurança. Mark Russinovich apontou esse problema em seu blog, no site blogs.technet.com/markrussinovich/archive/2007/02/12/638372.aspx.
Mark está totalmente certo. A Microsoft tem pleno conhecimento do fato de que não há um limite de segurança entre um processo baixo e um elevado no mesmo desktop. Assim como nunca se pensou em ter qualquer isolamento entre processos no mesmo desktop, na verdade, isso não pode ser chamado de vulnerabilidade de segurança. É óbvio que isso diminui o valor do UAC como um mecanismo de primeira linha contra o malware, mas, de qualquer forma, ele não foi criado para isso, apesar de você ter lido sobre isso em vários lugares, incluindo em artigos da Microsoft.
Esse fato diminui o valor do UAC em relação ao seu objetivo principal — permitir que mais pessoas executem como usuários padrão na maior parte do tempo? Não. A existência ou a falta de um limite de segurança impenetrável entre um aplicativo malicioso com privilégios baixos e um aplicativo elevado não muda o fato de que mais usuários podem usar o UAC com eficiência e executar programas em seus computadores com Windows Vista como usuários padrão. Na verdade, ao contrário do que algumas pessoas do setor poderão fazer você acreditar, eu escrevi este artigo (e todo o meu livro sobre segurança no Windows Vista, falando nisso) como um usuário padrão do Windows Vista e nem uma vez UAC solicitou que eu aceitasse nada do que escrevi!
O fato de que o UAC não acaba com todos os problemas de segurança, ou de que ele não possui uma propriedade que muitos de nós, eu inclusive, gostaríamos de ter —uma proteção de primeira linha contra o malware — não significa que ele não seja uma tecnologia de segurança. A capacidade de identificar usuários por meio de contas de usuário separadas não impede, por si só, o malware de infectar o seu sistema, mas ninguém diria que as contas de usuário, portanto, não são uma tecnologia de segurança. O UAC não resolve todos os problemas que gostaríamos que ele resolvesse, mas isso não significa que os problemas que ele resolve não sejam valiosos.
O UAC deixa que as tecnologias, como o amplamente aperfeiçoado Firewall do Windows, o Windows Defender e outros programas antimalware, mantenham o código malicioso afastado do seu computador, impedindo-o de ser executado caso consiga entrar (seja devido à programação ardilosa ou a algum programa "bonitinho" que esconda um malware). Provavelmente, nem essas tecnologias de segurança têm 100 por cento de êxito em suas missões, ainda que sejam tecnologias valiosas e tenham o seu espaço. Mas eu já disse várias vezes, mesmo se todas as avenidas de ataque forem fechadas, isso afetará o usuário. Se a pessoa usando o teclado optar por permitir a execução do código malicioso, nenhuma medida de segurança do mundo poderá ajudar.

Práticas recomendadas
Como você deveria usar o UAC? Você deve executar como administrador em modo de aprovação de administrador? Como observado diversas vezes, o UAC não impede a entrada de código de um aplicativo com menos privilégios em um aplicativo mais privilegiado no mesmo desktop. Isso significa que executar em modo de aprovação de administração ou como um usuário padrão com elevação em uma sessão (a elevação over the shoulder) não oferecerá um isolamento efetivo. No entanto, qualquer uma das soluções é muito melhor do que executar como administrador no Windows XP ou com o UAC desativado no Windows Vista. Eventualmente, no entanto, é provável que o malware seja escrito para tirar vantagem de aplicativos elevados no desktop interativo.
Como você decidirá executar, então, dependerá da sua filosofia de gerenciamento de risco. Quando você executa como um usuário padrão e utiliza a elevação over the shoulder para elevar um aplicativo, o aplicativo elevado terá um ambiente de usuário diferente dos usuais. Isso diminui o risco de um ataque de envenenamento, quando um aplicativo malicioso não elevado envenena o ambiente do usuário para um que seja elevado, mas isso não elimina, necessariamente, a capacidade do aplicativo não elevado de controlar um elevado. Embora um aplicativo malicioso executado semanas atrás não possa envenenar facilmente um aplicativo elevado executado hoje, um aplicativo malicioso executado hoje pode ser capaz de controlar um aplicativo elevado. Você precisa considerar o risco de usar o modo de aprovação de administração ou a elevação over the shoulder no contexto da facilidade de utilização fornecida.
Isso nos leva a um conjunto de práticas recomendadas para o UAC, resumido na Figura 2. A melhor opção, em minha opinião, é também a mais complicada. No entanto, para os verdadeiramente paranóicos ou exibidos, a melhor opção é executar como usuário padrão e nunca fazer a elevação. De certa forma, executar como um administrador no Windows XP, executar um código malicioso significa fim de jogo. No Windows Vista, se você executar código malicioso e elevar dentro dessa sessão, será, provavelmente, fim de jogo. Sinta-se à vontade em escolher a abordagem que achar melhor e que ofereça um nível de proteção com que você se sente confortável.
Figure 2 Práticas recomendadas de elevação de conta (Close Figure 2)

Nível de proteção | Método de elevação
Pior | Desativa o UAC.
Ruim | Eleva administradores automaticamente.
Bom | Executa em modo de aprovação de administrador.
Melhor | Executa como usuário padrão e eleva para uma conta de administrador separada.
Melhor | Executa como usuário padrão e alterna o usuário para uma conta de administrador separada em vez de usar o UAC para elevar.
Além disso, o verdadeiramente paranóico não confia no fornecedor quando ele diz que seu aplicativo deve ser executado como um administrador! Um dos exemplos mais visíveis em que essa situação não é verdadeira é o Visual Studio® 2005 Service Pack 1. Quando ele é iniciado, é solicitado que você o execute como administrador. No entanto, isso só será verdadeiro para desenvolvedores que tenham de executar certas tarefas. Há mais informações disponíveis no site msdn2.microsoft.com/en-us/vstudio/aa972193.aspx.

Maior autonomia ao usuário
Os usuários devem ter mais autonomia para tomar mais e melhores decisões. Existe um contingente de profissionais de segurança que acredita que as decisões de segurança devem ser escondidas do usuário. Sua lógica não declarada é que os usuários não só não se preocupam com a segurança, como também não são inteligentes o suficiente para fazer isso de forma apropriada. Eles só estarão protegidos se usarem o InsiraASuaTecnologiaAntiAlgumaCoisaFavoritaAqui.
Não consigo enxergar como a tecnologia pode proteger as pessoas de ataques que visam as pessoas. A maioria dos ataques de hoje, incluindo virtualmente todos os ataques de phishing, visam principalmente as pessoas e a forma como elas utilizam seus computadores, e não a tecnologia que existe nesses computadores. O mais eficiente desses ataques pode mesclar ataques às pessoas a ataques à tecnologia, mas eles ainda precisarão da interação do usuário para ser executados. Nós simplesmente não podemos esperar que a tecnologia nos proteja de ataques que não a estejam visando. Escrevi muito sobre esse assunto há algum tempo: technetmagazine.com/issues/2006/07/SecurityWatch.
O UAC já está forçando os usuários a tomarem decisões de segurança e já existem promessas de fornecedores de tecnologia em relação a soluções que impedem os usuários de tomarem essas decisões. É verdade que os usuários preferem não ser incomodados pela segurança. No entanto, também é verdade que nenhum software pode enxergar a intenção de outro software. Nenhum sistema de prevenção de invasão poderá dizer se um site está solicitando o número do seu cartão de crédito para poder enviar a você uma cópia do Windows Vista Security ou para enviá-lo a uma organização criminosa obscura. Somente o usuário final poderá fazer isso e somente quando a informação apropriada é fornecida. Como engenheiros de software, precisamos conscientizar os usuários mostrando que eles precisam tomar decisões inteligentes de segurança, ensinar a eles como fazer isso e oferecer as informações de que eles precisam para fazer isso.
Se insistirmos em nosso caminho atual — tentar impedir que os usuários tomem decisões de segurança — descobriremos que não seremos capazes de protegê-los. Por fim, os usuários se cansarão de hackers e de terem sua privacidade, contas bancárias, identidade, dignidade e auto-estima violados. Quando isso acontecer, eles não usarão mais os produtos que precisamos que eles comprem para sustentar a indústria. Existem pessoas no ramo da alta tecnologia que acreditam que, se negarmos o fato de que há problemas de segurança em computadores e em qualquer coisa eletrônica, os usuários usarão cegamente o que atirarmos para eles. Nada poderia estar mais longe da verdade. Quando os usuários finalmente perceberem que não temos sido abertos e honestos, eles perderão totalmente a fé e a confiança e voltarão as costas aos nossos produtos, causando um colapso em todas as indústrias que temos tentado proteger ao escondermos a verdade.
O UAC é uma etapa empolgante na direção para dar aos usuários uma autonomia maior ao se responsabilizarem pela segurança de seus sistemas. Isso não, de forma alguma, uma solução de segurança completa, mas como uma primeira tentativa de ajudá-los a executar com menos privilégio, é definitivamente uma etapa significativa na direção certa.

Dr. Jesper M. Johansson é engenheiro-chefe de segurança que trabalha com questões de segurança de software e é editor-colaborador da TechNet Magazine. Ele possui Ph.D em MIS (sigla em inglês para Sistemas de Gerenciamento de Informação) e mais de 20 anos de experiência em segurança computacional.


 Os arquivos da &#225;rea de trabalho: Recupera&#231;&#227;o do PC com o Windows PE
Os arquivos da área de trabalho
Recuperação do PC com o Windows PE
Wes Miller

Já mencionei, em colunas anteriores, que a nossa visão inicial para o Windows PE consistia em fazer dele um ambiente de implantação. Mas, como todos os bons produtos, o Windows PE evoluiu para além disso. Os clientes (inicialmente, os OEMs) estavam ansiosos para criar uma só solução para produção e auto-recuperação dos usuários. Assim, várias empresas produziram
com o Windows® PE soluções para desempenhar as duas funções.
A maioria das ferramentas de recuperação existentes no momento se baseia na premissa de fazer com que o sistema retorne a um estado favorável conhecido, com o espelhamento do processo de implantação. O Windows Vista® torna a recuperação um pouco mais fácil do que no Windows XP e fornece suporte nativo à geração de imagens (consulte o artigo de Christine Fok sobre as tecnologias de backup do Windows Vista nesta edição da TechNet Magazine).
Na coluna deste mês, abordarei a criação da sua própria solução de recuperação com base no Windows PE. O Windows PE 2.0 está disponível gratuitamente para todos os licenciados do Windows, como componente do Windows AIK (Kit de Instalação Automatizada do Windows). Essa licença se aplica à implantação e também ao uso do Windows PE para fins de recuperação e solução de problemas.
Logicamente, será preciso levar em conta suas personalizações e ajustes, mas abordarei aqui os pontos gerais dos quais você terá de se lembrar, seja para implantar o Windows XP ou o Windows Vista. Se você está familiarizado com a geração de imagens, já sabe bastante sobre o assunto.
Os principais componentes de qualquer solução de recuperação do Windows PE são:
  • Windows PE
  • Um utilitário de geração de imagens
  • Elementos de script (ou um aplicativo formal) para unir todas as partes
Se desejar, você pode incluir suporte para SQL e ADSI (Active Directory® Service Interfaces). A conectividade com o SQL permite criar indiretamente uma solução que possibilite a seus sistemas gerar uma "lista de materiais", definindo o que é preciso para a instalação. Da mesma forma, a conexão com o Active Directory é conveniente para lidar com propriedades de MAO (objeto de conta por máquina).
Observe que a inclusão das ADSI no Windows PE não conta com suporte da Microsoft, mas há alguns artigos on-line explicando como fazer isso — e, se for feito corretamente, funcionará muito bem. Se não quiser tentar, você pode adicionar o suporte a SQL e compilar nele o fluxo de trabalho para a sua ferramenta de recuperação do Windows PE. Se precisar de alguma propriedade de ADSI, você poderá ter um sistema de servidor com uma tarefa agendada para consultar o mesmo SQL Server™ e, depois, consultar o Active Directory via ADSI — funcionando, essencialmente, como uma passagem.
Não é uma solução perfeita e precisará de algum uso de scripts ou de outra forma de automação, mas esse design permitirá a você interagir com o Active Directory a partir do Windows PE.
Também é possível usar o utilitário LDIFDE para ler informações no Active Directory a partir do Windows PE (consulte o artigo sobre esse assunto na Base de Dados de Conhecimento, em support.microsoft.com/kb/237677, para obter mais informações). Você pode, por exemplo, usar o seguinte comando:
ldifde -m -f x:\output.ldf -b <username> <domain netbiosname> <accountPassword> -s
<DC or domain name> -d "DC=contoso,DC=com" -r "(&(objectclass=<computerclassname>)
(netbuisname=<mycomputername>))" - l "<attributename>"
Inserir esse comando fará com que seja recuperado um atributo do objeto de computador especificado para x:\output.ldf, onde a saída poderá ser analisada.

SKUs, bits e idiomas
Você precisa levar em conta as versões, as arquiteturas e os idiomas do Windows que precisará implantar. Em uma organização pequena, de atuação local, provavelmente você implantará apenas um sistema operacional — Windows XP ou Windows Vista — ou então utilizará o que já vier instalado nos novos PCs. É provável que você ainda não vá implantar muitos sistemas Windows x64, se implantar algum. E é quase certo que precise oferecer suporte a apenas um idioma. No entanto, quanto maior e mais global for a sua organização, com mais arquiteturas, versões e configurações você precisará lidar.
Mencionei, em uma coluna anterior, que é possível armazenar imagens de volumes x64 e x86 no mesmo arquivo WIM (Windows Imaging Format), embora isso não economize espaço. Se você estiver criando uma solução de recuperação e precisar dar conta das duas arquiteturas, deverá armazenar cada uma delas em um WIM separado. Da mesma forma, se for implantar e oferecer suporte ao Windows XP e ao Windows Vista, você não conseguirá economizar espaço armazenando os dois sistemas operacionais na mesma imagem. Isso só ocorrerá se você incluir várias instâncias dos mesmos aplicativos (por exemplo, o 2007 Microsoft® Office system) nas duas implantações. Assim, os arquivos dos aplicativos não precisarão ser armazenados várias vezes. Ainda assim, é improvável que isso gere uma economia de espaço significativa.
Métodos de inicialização do Windows PE
Windows PE 1.6
Inicialização PXE a partir da instalação remota
Serviço (RIS) (sem RAMDisk)
Unidade de disco rígido
Unidade flash USB
Inicialização de RAMDisk baseada em PXE
Inicialização de RAMDisk baseada em CD/DVD
Inicialização de RAMDisk baseada em unidade flash USB
Inicialização de RAMDisk baseada em unidade de disco rígido

Windows PE 2.0
Inicialização de RAMDisk baseada em PXE
Inicialização de RAMDisk baseada em CD/DVD
Inicialização de RAMDisk baseada em unidade flash USB
Inicialização de RAMDisk baseada em unidade de disco rígido

A inicialização PXE a partir do RIS é ideal se você precisa do PXE, mas convém observar que esse método leva mais tempo para inicializar e consome mais recursos de rede do que uma inicialização de RAMDisk baseada em PXE.
A unidade de disco rígido utiliza um mínimo de memória, mas bloqueia a unidade. Esse método é ideal se você utiliza um cenário de recuperação flip-flop com duas partições.
A unidade flash USB permite uma inicialização mais conveniente; no entanto, o uso de UFD (tanto em cenários RAMDisk quanto não-RAMDisk) é arriscado se os sistemas de inicialização não tiverem sido verificados pelo OEM como inicializáveis por UFD e não tiverem o logotipo Windows Vista Capable (que tem como um de seus requisitos a garantia de suporte à inicialização por UFD). A inicialização por UFD exige uma unidade flash de alto desempenho (para leitura e gravação), além do suporte a USB de alta velocidade por parte do controlador de USB e do BIOS.
A inicialização de RAMDisk (em suas diversas formas) exige mais memória, mas fornece desempenho ideal e retira do caminho o Windows PE, colocando-o em um RAMDisk na memória. A inicialização de RAMDisk do Windows PE 1.6, em geral, só deve ser usada em sistemas com pelo menos 256 MB de RAM. A inicialização do Windows PE 2.0 (que é sempre uma inicialização de RAMDisk baseada em WIM), em geral, só deve ser realizada em sistemas com pelo menos 384 MB de RAM.

Observe, no entanto, que ocorre uma economia de espaço significativa quando várias SKUs de uma versão específica do Windows são armazenadas no mesmo WIM. Suponhamos, por exemplo, que você combine o Windows XP Professional com o Windows XP Tablet PC Edition, ou então o Windows Vista Business Edition com o Windows Vista Ultimate Edition. Essas combinações utilizam o espaço com eficiência, uma vez que duas SKUs no mesmo nível de versão e service pack compartilham, em grande parte, o mesmo código e os mesmos arquivos.
Por fim, entra em jogo o idioma. Quanto maior a organização, mais idiomas será preciso levar em conta. Com o Windows XP, é possível escolher entre usar compilações localizadas ou a MUI (Multilingual User Interface). Nas compilações totalmente localizadas do Windows XP, quase todas as cadeias de caracteres são localizadas para os idiomas de destino. Por outro lado, com a MUI, o idioma base é o inglês e os pacotes de idioma da MUI (posteriormente, Pacotes de Interface de Idioma) alteram o máximo possível de cadeias de caracteres (a MUI apresentava resultados razoáveis no Windows 2000 e resultados muito melhores no Windows XP e no Windows Server 2003).
Se a sua organização utiliza a MUI, você pode obter um bom resultado combinando várias versões de idioma no mesmo WIM. Isso ocorre porque todas usam como base os binários do inglês. O mesmo não se aplica às versões localizadas anteriores ao Windows Vista. Como os próprios binários são localizados, o mesmo binário não terá correspondência entre idiomas. Ou seja, você precisará armazenar quase todo o sistema operacional (e os aplicativos localizados) de cada idioma.
Com o Windows Vista, pode-se considerar preteridas as versões localizadas (como parte de um único binário com recursos internos). O Windows Vista usa arquivos de recursos .mui para cada idioma — inclusive o inglês. Essencialmente, o Windows Vista é isento de idioma, pois quase todas as informações de idioma residem nos arquivos MUI. Por isso, armazenar mais de uma versão de idioma do Windows Vista no mesmo WIM resultará em uma economia de espaço significativa. Armazenar dois, quatro ou mais idiomas em um só WIM permitirá impedir um crescimento explosivo da imagem — e será possível alternar ou adicionar idiomas depois, de acordo com as mudanças nos requisitos.
Em suma, ao criar sua solução, você deve levar em conta as versões do Windows e de outros aplicativos que compartilham os mesmos binários, permitindo o armazenamento de uma só instância dos arquivos. Isso o ajudará a determinar quantos arquivos WIM serão necessários em toda a organização.

Cenários de usuário
Em geral, quanto maior se torna uma organização, mais aumenta sua complexidade. Isso não se deve apenas ao tamanho, mas também a todas as variáveis introduzidas — mais usuários e mais unidades de negócios, com mais necessidades específicas.
Lembro-me de uma determinada multinacional com dezenas de milhares de usuários e um processo de implantação totalmente gerenciado a partir de um só local, sob os aspectos geográfico e organizacional. O responsável por comandar essa organização sempre apresentava questões muito desafiadoras. Por exemplo, ele se preocupava com alguns usuários remotos em certas partes da África que não contavam com uma boa conexão de rede. Na verdade, muitos deles estavam a centenas de quilômetros de uma linha telefônica. Ele precisava saber como esses usuários poderiam recuperar os próprios sistemas sem passar por vários dias de inatividade ou viajar grandes distâncias.
Quando você desenvolve um produto — e, nesse sentido, você deve pensar na sua solução de recuperação como um produto — é preciso pensar nos usuários. Pense em necessidades de negócios específicas, mas também nas diversas complexidades associadas às diferentes categorias de usuários. Você deve incorporar casos de uso com descrições resumidas, representando cada tipo de usuário final ao qual precisa dar suporte. Isso pode ajudá-lo a reconhecer os usuários acidentalmente deixados de fora da sua solução de recuperação, garantindo que as necessidades de cada tipo de usuário sejam levadas em conta.

A versão certa do Windows PE
Outra decisão importante consiste em determinar qual a versão do Windows PE mais adequada às suas necessidades. As edições anteriores desta coluna podem ajudar, mas tentarei aqui tornar a decisão um pouco mais clara. Se uma das afirmações a seguir for verdadeira, você deverá usar o Windows PE 1.6:
  • Você está apenas recuperando o Windows XP (ou o Windows Server 2003)
  • Você está recuperando qualquer sistema não compatível com ACPI (Interface de Energia e Configuração Avançada)
  • Você está recuperando qualquer sistema que não tem um mínimo de 512 MB de RAM
  • Você está recuperando qualquer sistema que precisa de uma inicialização PXE (Pre-Boot eXecution) com menos de 256 MB de RAM
Se uma das afirmações a seguir for verdadeira, você deverá usar o Windows PE 2.0:
  • Você está apenas recuperando o Windows Vista (ou o Windows Server 2008)
  • Você está recuperando o Windows Vista e também o Windows XP
  • Você está utilizando o BitLocker™
Observe que o ImageX (consulte a seção "Criar, atualizar e armazenar"), assim como a maioria das soluções de geração de imagens de terceiros, funcionará bem com qualquer versão do Windows PE.

Inicializando o Windows PE
O próximo fator que você deve levar em conta é como o Windows PE será inicializado. Os cenários de usuário desempenham um papel fundamental nessa questão. É uma opção realista fazer com que os usuários dependam de CDs ou DVDs para a recuperação? Eles conseguirão utilizá-los com o laptop quando estiverem viajando? E como você fará para manter essa mídia de recuperação atualizada? As imagens de recuperação em mídia removível se tornam obsoletas com grande rapidez.
O cenário que tenho encontrado com mais freqüência é a partição secundária de disco rígido. Outra opção é a inicialização PXE. Também é possível avaliar a possibilidade de usar unidades USB externas, ou mesmo UFDs (unidades flash USB). Contudo, é necessário que o hardware em questão ofereça explicitamente suporte à inicialização a partir de um dispositivo UFD.
A barra lateral "Métodos de inicialização do Windows PE" descreve os métodos com suporte para inicializar cada versão do Windows PE e traz algumas considerações importantes sobre cada um deles.
Sua meta ao inicializar o Windows PE deve ser dar início ao processo de recuperação, atendendo, ao mesmo tempo, a determinados critérios:
  • Com o mínimo de interação do usuário
  • Com o mínimo de partes móveis (mídia removível ou dispositivos removíveis)
  • Mesmo que o PC não conte com conectividade de rede
  • Mesmo que o PC não possa ser inicializado localmente (falha na inicialização do Windows)
Em geral, os administradores não consideram uma opção viável colocar o Windows PE (simples ou em um RAMDisk) no disco rígido, devido à preocupação com falhas da unidade. Mas, na realidade, essa é uma opção viável, devido à confiabilidade dos discos na atualidade e ao fato de que, caso a unidade física venha a apresentar uma falha, o usuário não conseguirá mesmo recuperar o sistema sozinho.
Minha preferência consiste em criar uma partição secundária e armazenar nela a imagem de recuperação. Não sou favorável a tornar a partição oculta, o que apenas confunde os usuários. Usar uma ACL (lista de controle de acesso) também não é viável — a menos que os seus usuários não sejam administradores locais.
Reduzindo a partição usada pelo Windows (consulte a barra lateral "Criando uma partição de recuperação"), talvez você consiga liberar espaço suficiente para armazenar o Windows PE e a sua imagem de recuperação. Para colocar o Windows PE na partição secundária, basta criar o setor de inicialização apropriado na partição de recuperação e colocar o Windows PE nessa partição (os documentos incluídos no Windows AIK e nas versões anteriores do Windows PE explicam o processo, portanto não entrarei em detalhes aqui). O fator principal a ser lembrado é que a partição usada na inicialização é determinada pela partição marcada como ativa. O diskpart conta com um sinalizador ativo e com um inativo, igualmente importante. Para inicializar a partição de recuperação a partir do Windows (ou então de uma cópia do Windows PE), use o diskpart para alternar as partições ativas (veja a Figura 1). A seguir, há um exemplo de script de diskpart (use diskpart /s nome_do_script.txt) para fazer a alternância em um sistema de um só disco com duas partições:
SEL DIS 0
SEL PAR 1
INACTIVE
SEL PAR 2
ACTIVE
EXIT
Figura 1 Diskpart alterando a partição ativa
Figura 1 Diskpart alterando a partição ativa
Esse é o processo usado por várias ferramentas de recuperação para o consumidor para fazer o flip-flop entre partições — algo que só pode ser feito a partir do Windows PE em certos tipos de partições, como as ocultas do tipo OEM. Às vezes, essas ferramentas também reexibem uma partição oculta do tipo OEM.

Criar, atualizar e armazenar
Criando uma partição de recuperação
O processo para criar uma partição de recuperação deixando, ao mesmo tempo, o Windows intacto não é difícil, quando se conhece as etapas envolvidas. Eis aqui uma rápida orientação sobre o que é preciso fazer. Observe que esse processo exige o Windows PE 2.0. Mesmo que você não use o Windows PE 2.0 para implantação ou recuperação, precisará dele para essa tarefa. O processo também pode ser adotado ao implantar o Windows Vista e para criar uma partição de inicialização que será usada para os arquivos de inicialização do BitLocker, uma vez que o BitLocker requer pelo menos duas partições (uma para os arquivos de inicialização e outra para o restante do sistema Windows).
  1. Desfragmente seu disco (isso pode acelerar o processo de redução, que leva um tempo considerável)
  2. Inicialize o Windows PE 2.0
  3. Execute o diskpart (se quiser, você pode criar um script para as etapas de 4 a 9 e passar ao diskpart o seguinte argumento: /s nome_do_script)
  4. SEL VOL 1 (ou o volume que deseja reduzir)
  5. SHRINK DESIRED=N MIN=N (especificado em megabytes, DESIRED é a meta e MIN é o mínimo absolutamente necessário)
  6. Quando a redução for concluída, execute SEL DIS 0
  7. CRE PAR PRI (você pode especificar SIZE=N se quiser definir um tamanho diferente do restante do disco)
  8. ASSIGN LETTER=N: (essa letra é para uso somente no Windows PE)
  9. Saia do diskpart
  10. FORMAT N: /Q /Y /FS:NTFS (NTFS formata a nova partição)
  11. Execute bootsect N: /nt60 para 2.0 e /nt52 para 1.x)
  12. Copie os arquivos desejados do Windows PE para a partição de recuperação
  13. Desligue o sistema

Embora o ImageX seja uma solução gratuita, talvez você já utilize há algum tempo uma outra ferramenta de geração de imagens. Você pode usar a ferramenta com a qual se sentir mais à vontade. Se estiver avaliando a possibilidade de optar pelo ImageX, há alguns aspectos que aprecio nele e que vale a pena conhecer (além do fator econômico). O ImageX é especialmente agressivo no que se refere à compactação. Outro aspecto positivo é que uma imagem pode ser acrescentada e editada com relativa facilidade.
Também aprecio que o ImageX possibilite gerar, de forma não destrutiva, imagens de um ou mais volumes, permitindo preservar os dados do usuário simplesmente retirando-os do caminho. Em outras palavras, ao recuperar o Windows, não é preciso apagar o volume inteiro.
Então, logicamente, é preciso decidir onde armazenar a imagem. Supondo que a sua solução use uma partição de recuperação, você pode armazenar nela um WIM ou outro arquivo de imagem. Você pode até mesmo avaliar a possibilidade de usar WDS (Serviços de Implantação do Windows), criando uma imagem padrão do sistema operacional e armazenando-a na rede. Isso permite o uso de uma solução comum de recuperação, disponível em toda a infra-estrutura. Claro que, se houver usuários em campo (como os funcionários mencionados anteriormente, em partes remotas do mundo), será preciso garantir que eles tenham sua própria solução disponível quando não puderem estabelecer uma conexão com a rede.
Já mencionei a possibilidade de usar mídia, como DVDs, mas há uma série de motivos pelos quais não gosto dessa opção para uso geral. Por exemplo, o tamanho de uma imagem pode aumentar rapidamente, excedendo o tamanho de um DVD, e esse tipo de disco não pode ser facilmente atualizado. Isso não quer dizer que não haja espaço para a mídia óptica. É preciso apenas avaliar qual o melhor cenário para cada tipo de usuário. A minha preferência, se você ainda não descobriu, consiste em armazenar a imagem em uma partição de recuperação, em um disco rígido ou unidade flash USB ou então, quando for viável, na rede usando WDS.
Um aspecto que torna o WDS uma opção atraente é a facilidade de atualizar uma imagem centralizada. A esta altura, todos já devem saber que as atualizações do Windows são lançadas mensalmente e que, em geral, são críticas. Desenvolva sua solução de forma que a imagem de recuperação esteja sempre o mais atualizada possível. Com o WDS, você pode atualizar a imagem em cada servidor e ela ficará completa.

Preocupações com dados e configurações do usuário
Há alguns problemas que você deve ter em mente ao desenvolver uma solução de recuperação. Um aspecto essencial do planejamento de qualquer solução de recuperação consiste em garantir a segurança dos dados do usuário. Você certamente não deseja que um usuário em campo realize uma recuperação e, logo depois, descubra que todos os seus dados importantes foram perdidos no processo. O ideal é que os dados do usuário estejam armazenados em algum outro lugar que não a partição C:, a menos que você seja muito cuidadoso com a forma de tratar a recuperação do sistema.
Mencionei anteriormente que o ImageX permite restaurar um disco de forma não destrutiva. Ele moverá, por exemplo, a árvore de diretórios Documents and Settings (ou Users) existente para outro diretório, de forma que um usuário ou um script possa recuperar os arquivos manualmente quando a recuperação estiver concluída. Os usuários que armazenam todos os seus arquivos no perfil ou que usam perfis móveis, na maioria dos casos, conseguirão recuperar o sistema sem perder os dados. Contudo, é importante lembrar-se de que, a menos que você projete sua solução de recuperação com muito cuidado ou tenha uma solução perfeita de backup, alguns dados do usuário ainda podem ser perdidos.
Lembre-se de que, apesar de todo o seu planejamento, alguns usuários armazenam informações em outros locais, e não no perfil. Você deve garantir que a sua solução leve em conta a possibilidade de eliminar dados por acidente, alertando os usuários com antecedência.
Se você usa o EFS (sistema de arquivos com criptografia), certifique-se de executar seu plano de recuperação de chaves. Você não vai querer perder dados devido à criptografia irrecuperável. De forma semelhante ao BitLocker, verifique se está preparado para recuperar volumes criptografados com ele. Isso significa que será preciso usar o Windows PE 2.0 (o 1.x não é capaz de interagir com o BitLocker). Para obter mais informações sobre a recuperação do BitLocker, consulte blogs.msdn.com/si_team.
Por fim, esteja preparado para o fato de que alguns usuários se irritarão quando perceberem o desaparecimento de algumas personalizações ou aplicativos. As personalizações (de aplicativos e do próprio Windows) são armazenadas em alguns locais aleatórios, e não apenas no perfil do usuário. Quando restaurarem toda a partição do sistema operacional, alguns usuários ligarão para perguntar "Onde foi parar x?" ou "Por que o Word não mostra mais y?". Estabeleça expectativas entre os usuários, para que eles saibam que talvez o ambiente não volte a ser exatamente o mesmo do dia anterior.
Criar sua própria solução de recuperação com o Windows PE leva tempo e você precisa pensar nos usuários conforme realiza o planejamento e o desenvolvimento. Uma solução de recuperação não precisa ser excessivamente complexa; basta que consiga fazer com que o sistema do usuário volte a funcionar no menor tempo possível, com suporte técnico limitado.

Wes Miller é gerente de desenvolvimento da Pluck (www.pluck.com) em Austin, no Texas. Ele já trabalhou na Winternals Software, em Austin, e na Microsoft, como gerente de programas e gerente de produtos do Windows. Entre em contato com ele pelo email technet@getwired.com.


 Anota&#231;&#245;es de campo: Comida gr&#225;tis e dicas de treinamento
Anotações de campo
Comida grátis e dicas de treinamento
Michael Dragone

Sou engenheiro de sistemas de uma seguradora de títulos que emprega cerca de 150 pessoas. Na verdade, temos necessidades de computação bastante simples, pois nosso principal aplicativo de linha de negócios é baseado na Web. Por isso, interagimos principalmente com o Internet Explorer® e, é claro, com o Microsoft® Office.
Com essa implantação relativamente simples, era de se esperar que nossos usuários tivessem poucos ou até mesmo nenhum problema no uso diário dos aplicativos. Isso é verdade, na maior parte do tempo. Os problemas que surgem, em geral, são do tipo que o leitor médio da TechNet Magazine resolveria em alguns segundos.
Com a experiência, aprendi que uma boa formação do usuário é fundamental para restringir esses problemas ao mínimo possível. Eu gostaria de compartilhar duas práticas que adotamos com nossos usuários, na esperança de que você proceda de forma semelhante.
A primeira é oferecer sessões de treinamento. De tempos em tempos, promovemos um treinamento que aborda os novos sistemas instalados, os novos aplicativos que implantaremos e as novas políticas adotadas. Da mesma forma, se vamos realizar uma alteração de sistema importante, promovemos um treinamento especial para tratar da alteração e responder a perguntas. Fazemos isso de forma antecipada, para que os usuários estejam totalmente preparados.
Por exemplo, estamos planejando implantar uma atualização importante em nosso sistema telefônico. Os usuários ainda poderão acessar a caixa postal com o Outlook® como fazem agora, mas o software usado para isso será alterado. Planejamos realizar uma sessão de treinamento na qual o fornecedor do sistema telefônico demonstrará a nova interface para os usuários, permitindo que façam perguntas bem antes da implantação propriamente dita.
Também abordamos tópicos já existentes, com os quais nossos usuários têm tido problemas. Se você já passou algum tempo no sistema de registro de ocorrências, sabe que problemas são esses. Por exemplo, uma de nossas usuárias não entendia por que dois sistemas separados precisavam ter duas senhas diferentes. Nenhuma explicação verbal foi suficiente, até que ela viu a questão representada em um slide do PowerPoint® e teve seu momento "Eureca!".
Descobri com a experiência que, não importa qual o tópico específico, as chaves para uma reunião bem-sucedida são comida grátis e um ambiente descontraído. Faça com que seus usuários tenham facilidade para fazer perguntas, até mesmo as "bobas".
Minha segunda dica é simplesmente circular pelo escritório. Todos os dias, reservo 10 ou 15 minutos para conversar com os usuários. Se vejo alguém realizando uma tarefa de forma estranha, paro por alguns minutos e esclareço o que está fazendo e por quê. Geralmente consigo mostrar um método alternativo bem mais simples. Por exemplo, um de nossos usuários sempre reorganizava acidentalmente suas barras de ferramentas do Outlook, mas não sabia como corrigir o problema. Ele sofria em silêncio, até que um dia percebi o que ocorria. Mostrei-lhe como fazer alterações nas barras de ferramentas. Assim, quando ele as reorganizasse acidentalmente, poderia restaurar a forma preferida.
Talvez outros usuários tenham problemas que não querem trazer ao suporte técnico por diversos motivos. Pode ser que alguns se sintam constrangidos, imaginando que suas dúvidas são tolas e que não merecem a atenção da TI. Outros usam teclados ou mouses defeituosos, sem imaginar que a TI mantém peças de reposição justamente para essas situações. Dedicando alguns minutos a visitar os usuários, você resolverá muitos desses problemas e surgirão idéias para o próximo treinamento (mas não se esqueça da comida grátis).
É importante lembrar-se dos seus usuários em todos os aspectos do trabalho. A maioria das mudanças feitas em seus sistemas, políticas e procedimentos terá algum impacto sobre os usuários (ou até mesmo todas elas). Cada usuário é único e reagirá de forma diferente a essas mudanças.
Geralmente é difícil para nós, que consideramos a tecnologia como uma segunda natureza, atender bem aos nossos usuários, não tão afeitos à tecnologia. Mas, com um pouco de paciência e de treinamento dos usuários, você conseguirá ajudá-los a gostar dos computadores como você gosta. Passo a passo, é claro.

Michael Dragone é engenheiro de sistemas de uma seguradora de títulos em Nova York. Ele tem as certificações MCDST e MCSE: Messaging. Em seu tempo livre, faz longas caminhadas pela praia, brinca com seu cachorro e instala patches em servidores.


 Segredos do Windows: O Equil&#237;brio do Known DLLs
Segredos do Windows
O Equilíbrio do Known DLLs
Raymond Chen

O recurso do Windows chamado informalmente de "Known DLLs" é uma lista de DLLs (Bibliotecas de Vínculos Dinâmicos) que receberam tratamento especial pelo módulo de carregamento do kernel. Quando o carregador percebe um programa com um vínculo dinâmico de tempo de carregamento para uma DLL conhecida, a cópia é usada imediatamente, ignorando o algoritmo de busca que normalmente se aplica ao módulo de carregamento. Algumas pessoas devem considerar que se trata de um recurso de segurança (embora reconhecidamente um muito fraco), mas segurança nunca foi o objetivo desse recurso. O Known DLLs sempre foi voltado para desempenho.
Os mecanismos do recurso Known DLLs mudaram com o tempo. Em algumas versões do Windows®, o kernel usa a lista de DLLs conhecidas como ponto de partida, depois procura em todas as DLLs vinculadas àquelas conhecidas e vai repetindo a procura dessa forma. Esse processo amplia o fechamento transitivo de todas as dependências e considera todas como se fossem conhecidas. Em outras versões do Windows, esse fechamento transitivo não é criado; em vez disso, apenas DLLs listadas explicitamente como conhecidas são tratadas dessa forma. Em algumas versões do Windows, as DLLs conhecidas são pré-carregadas pelo kernel quando se inicializa o sistema; em outras versões, não acontece esse pré-carregamento e o kernel apenas usa a lista para economizar o trabalho de procurar o caminho para uma DLL.
Não é apenas a interpretação da lista de DLLs conhecidas que se altera de versão para versão. O conteúdo da chave de registro do KnownDLLs também pode ser alterado. A equipe de desempenho do Windows altera a lista de DLLs conhecidas e as regras pelas quais a lista é convertida em um conjunto de DLLs baseado na compreensão de como os aplicativos usam o Windows. Como é normal na engenharia, é um jogo de toma lá dá cá. Pré-carregar DLLs conhecidas quando sistema é inicializado permite que os aplicativos que utilizam essas DLLs se inicializem mais rápido, mas isso tem um preço. Demora mais a inicializar o sistema e consome mais memória, na medida em que aquelas DLLs permanecem na memória, estejam ou não sendo usadas. É um jogo onde se melhora o desempenho de alguns componentes ao custo de outros. Alcançar o equilíbrio é uma tarefa difícil e, como você pode ver, está sempre sendo perfeitamente ajustado conforme o modelo de uso se desenvolve.
Uma conseqüência das DLLs conhecidas que podem não ser legíveis é, obviamente, que elas prevalecem sobre as DLLs redirecionadas localmente. (Falamos sobre DLLs redirecionadas localmente na coluna da edição de janeiro de 2007.) Se você raciocinar, vai perceber que, na verdade, esse é o comportamento esperado, em vez de uma inconveniência. Além disso, o propósito da lista de DLLs conhecidas é dispensar o caminho da busca e, assim, acelerar o carregamento de DLL. Se o kernel tivesse que fazer checagem de DLLs redirecionadas, isso iria atrasar mais o processamento. Você pode pensar que adicionar apenas um diretório ao caminho de pesquisa não seria uma boa idéia, mas quando esse diretório é um servidor de rede bem no meio do caminho, adicionar ao menos um diretório pode ser um enorme redutor de desempenho.
Acredite ou não, tenho visto programas que utilizam DLLs conhecidas específicas. Havia apenas um programa que tinha um arquivo chamado Version.dll no diretório de aplicativos. Sob regras normais, essa cópia privada do Version.dll substituiria a que estivesse presente do diretório de sistema, mas no Windows XP, o Version.dll é listado como DLL conhecida. Isso significa que a cópia do diretório de aplicativo é ignorada e a versão no diretório de sistema prevalece.
No Windows Vista®, o Version.dll não é listado como DLL conhecida, provavelmente porque a equipe de desempenho determinou que os aplicativos não o utilizavam o suficiente para justificar o custo. Como resultado, esse programa não atua no Windows Vista porque, na verdade, o aplicativo se apoiava no kernel, ignorando o DLL que o programa havia instalado em seu próprio diretório de aplicativos. O programa estava instalado uma DLL de propósito no caminho de pesquisa e depois se apoiava no Windows e ignorava a DLL. Com certeza, se ele quisesse que o Windows ignorasse o arquivo, um mecanismo muito mais eficiente seria apenas não instalar o arquivo. A desvantagem é que a empresa que escreveu o programa arquivou um bug achando que havia encontrado uma falha de segurança.

Raymond Chen, The Old New Thing, e o livro homônimo (Addison-Wesley, 2007), tratam da história do Windows e da programação Win32. Raymond não tem mais nem idéia do tamanho de camiseta que veste.