Archive

Posts Tagged ‘WMI’

PoSh – Verificando a data e hora em um host remoto

março 4, 2016 Comentários desligados

Olá pessoALL,

Neste post eu vou falar sobre uma tarefa comum e anual: a verificação de horário em servidores. Mas por que esta tarefa é comum e anual? Como todos nós sabemos, temos anualmente o inicio e termino do horário de versão no Brasil e em outros países ao redor do mundo.

Embora esta situação seja automática e garantida com a aplicação de um KB da Microsoft, ter uma forma de validar que o horário de um ou mais servidores foi alterado realmente é sempre importante para evitar surpresas desagradáveis durante o dia produtivo.

Introdução

Com a chegada e partida do horário de verão todos os anos, ter certeza que sistemas sensíveis a este tipo de evento estejam com sua data e hora atualizadas é uma tarefa imprescindível para garantir que seu ambiente está operando corretamente.

Partindo da premissa de que um ambiente com um número grande de servidores exista neste caso, fazer uma verificação deste nível levaria um tempo consideravelmente grande se feita manualmente, sem contar o tamanho da mão de obra empregada para realizar tal tarefa.

Efetuar o logon em cada servidor para verificar a data e hora pós inicio/término do horário de versão não é uma solução viável dependendo do tamanho do ambiente. Há soluções mais robustas e que permitem um nível de interação com o sistema operacional mínimo, reduzindo o tempo gasto com esta ação.

Com Windows PowerShell é possível conectar a um host remoto para obter a informação de data e hora atual do sistema operacional. Vejamos então como é possível esta ação usando PoSh!.

Leia mais…

PoSh – Como criar/renomear/alterar a senha de uma conta de usuário local remotamente

fevereiro 18, 2016 Comentários desligados

Olá pessoALL,

Hoje nós vamos falar sobre um processo que pode ser necessário no dia a dia de quem cuida de estações de usuários e até mesmo servidores, mas que não é tão prático mesmo usando PowerShell por não existir um command let até o momento para esta necessidade: a criação de objetos locais como uma conta de usuário.

Quero informar também que nos posts relacionados a Windows PowerShell eu irei deixar de colocar códigos substituindo-os por imagens. O motivo é simples e único: não se aprende uma linguagem sem praticar e principalmente sem digitar os códigos!

Meu objetivo é incentivar o uso desta nova linguagem, forçar literalmente quem tem e quem não tem interesse em aprender o uso deste recurso poderoso no dia sem limitar-se a pesquisas no google e tomar este tipo de ação somente em casos onde o conhecimento realmente acabou.

Portanto, say good bye to copy and paste and welcome to the real world right now!

Leia mais…

Aplicando uma política de grupo para Proxy baseado no local do computador

junho 1, 2014 Comentários desligados

Olá pessoal!

Neste post vamos falar mais um pouco sobre políticas de grupo e como aplicá-las em estações baseadas em seus nomes.

Em uma infraestrutura de serviço de diretório bem desenhada, o nome de servidores, estações de trabalho e dispositivos de rede seguem um padrão que define a qual local este dispositivo pertence por questões de organização e praticidade no momento de identificar tal dispositivo.

Ter um bom desenho de seu serviço de diretório facilita muito o gerenciamento e também algumas tarefas como aplicar políticas de grupo.

Para ilustrar a mecânica deste post, vamos imaginar a seguinte situação:

  • você possui vários sites.
  • cada site possui uma nomenclatura que identifica seus dispositivos.
  • cada site possui um proxy que deve ser utilizado pelos dispositivos deste site.
  • cada site possui um firewall de borda com o qual o proxy se comunica para navegar na Internet.
  • apenas dispositivos no mesmo site podem usar o proxy do site para evitar tráfego desnecessário no link que interconecta os sites.
  • existem usuário que utilizam 2 ou mais computadores e alguns destes não podem receber as configurações de proxy, pois devem passar diretamente pelo firewall de borda da localidade.

Em uma situação como esta, ter uma configuração do Active Directory Sites and Services bem desenhada refletindo sua infraestrutura de rede ajudaria muito no momento de aplicar um política de grupo com este objetivo. No entanto, existe casos e casos como por exemplo, a possibilidade de se aplicar esta polítia por sites, ou seja, todo computador que esteja dentro da subrede do site irá receber a política.

Leia mais…

Inventário de servidores/workstations Windows com GP Inventory


Olá caro leitor, 

Estou aqui hoje para falar sobre um assunto muito importante em grandes ambientes controlados. Em pequenos ambientes verificar um item de hardware em determinado equipamento pode ser uma tarefa simples e rápida. 

Mas como seria a mesma tarefa em um ambiente grande onde há centenas e/ou milhares de servidores? Trabalho atualmente em um ambiente onde há aproximadamente 600 servidores físicos. Já imaginou um inventário de hardware em 600 servidores de forma não automatizada? 

Pois bem, atualmente temos ferramentas gratuitas que permitem realizar um inventário não somente em plataforma Windows, mas também Linux, UNIX Mac OS

Posso citar aqui e recomendar dois nomes de aplicativos excelentes para esta finalidade. O OCS Inventory NG e o Spiceworks

Tais ferramentas exigem algum tempo de estudos e testes para implementação e configuração. Entretanto, com fóco somente em servidores executando plataforma Windows, podemos utilizar uma ferramentas simples e rápida da Microsoft, o Group Policy Inventory (GPInventory). 

O GPInventory é uma ferramenta que permite coletar informações sobre GPOs via RSoP de servidores e também obter informações sobre hardware/software via WMI (Windows Management Instrumentation). 

O GPinventory é um MSI de 300KB aproximadamente que pode ser obtido diretamente pelo Microsoft Download Center neste link: Group Policy Inventory (GPInventory.exe) 

Faça o download do GPInventory e execute o MSI. O processo de instalação é rápido e simples sem muitas informações a serem inseridas. 

Por default, na instalação do GPInventory assume o diretório C:\Program Files\Windows Resource Kits\Tools por ser a localização de ferramentas de Resource Kit Tools instaladas no Windows. Caso escolha outro local, altere o assistente de instalação. 

Após finalizar a instalação, navegue até o diretório de instalação e crie um atalho em seu Desktop por exemplo para o executável do GPInventory (gpinventory.exe) e execute a ferramenta. 

A interface inicial é simples e limpa como podemos visualizar na imagem abaixo: 

GPInventory

Explicando as opções disponíveis na barra de menus: 

  • File > New query file: permite criar uma nova query com computadores + WMI definidas a serem executadas.
  • File > Open: abre um arquivo XML com queries WMI definidas a serem executadas.
  • File > Save: salva as configurações atuais computadores + WMI queries em um arquivo XML.
  • File > Save as…: mesma função anterior.
  • File> Exit: sai do GPInventory.
  • Query > Select computers to target from a text file: permite usar um arquivo TXT como entrada para os nomes dos computadores que serão alvos das WMI queries.
  • Query > Select computers to target using Active Directory: permite que os computadores sejam escolhidos por meio de OUs no Active Directory caso houve um ambiente com o  mesmo.
  • Query > Select information to gather: permite escolhermos quais WMI queries desejamos executar nos computadores alvos (já existem WMI queries default definidas mas é possível criar mais).
  • Query > Run query: Executa as WMI queries selecionadas nos computadores alvos.
  • Results > Save to an XML file: exporta o resultado para um arquivo XML.
  • Results > Save to an TXT file: exporta o resultado para um arquivos TXT.

Como pode ver, são opções simples as existentes na interface do GPInventory. Agora vamos ver como obter informações de um computador com a finalidade de realizar um inventária de hardware

O primeiro passo é saber qual é ou são os computadores alvos e quais informações se deseja saber. Como um teste local, crie um arquivo TXT chamado computer em seu Desktop

Abra o arquivo e nele digite o nome de seu computador. Salve em seguida e feche o arquivo. Agora na interface do GPInventory, use a opção Query > Select computers to target from a text file para usar este arquivo. 

O resultado será este abaixo: 

Host inserido no GPInventory

Agora que já temos um host alvo, iremos selecionar quais informações desejamos obter deste host. Use agora a opção Query > Select information to gather e iremos visualiza as seguintes opções de WMI Queries

WMI Queries - Part 1

WMI Queries - Part 2

Como podemos visualizar, por default já possuimos diversas WMI Queries configuradas no GPInventory, todas elas bem simples de serem compreendidas para qual é a sua finalidade. 

Vamos assumir que neste momento fosse necessário saber a versão do Sistema Operacional instalado, o modelo de processador e quantia de memória RAM no host

Seria necessário marcar a caixa a esquerda das seguintes WMI Queries e clicar no botão Ok: 

  1. WMI: Operation System
  2. WMI: Processor Name
  3. WMI: Processor Speed
  4. WMI: Computer Memory

Na imagem abaixo vemos que algumas colunas (WMI que selecionados anteriormente) foram inseridas na interface do GPInventory

WMI Queries selecionadas

Estamos prontos agora para executar as WMI Queries que selecionamos para obter as informações que desejamos. Pressione F5 ou então escolha a opção Query > Run query e aguarde o término da execução. 

No final teremos um resultado como este na interface do GPInventory

Resultado das WMI Queries

Perfeito, temos aqui as informações (Sistema Operacional, Tipo do processador, Clock em MHz e a quatia de memória em Bytes) que solicitamos ao GPInventory de forma rápida e simples. 

Tendo em mãos as informações, exporte o resultado para XML e abra com o Excel para tratar da forma que precisa estas informações. 

Entendendo como funcionam as WMI Queries 

Vamos ver aqui como é que o GPInventory obtem as informações por WMI. Navegue até o diretório C:\Program Files\Windows Resource Kits\Tools e abra o arquivo XML wmiqueries com o Notepad

Esté é o repositório onde estão todas as WMI Queries default do GPInventory que vimos anteriormente 

Repositório de WMI Queries

 Vamos entender agora a estrutura declarada de uma WMI Query em um arquivo XML. Tomemos como exemplo a seguinte string referente a Processor Name

<ManagedObject Name=”WMI: Processor Name” Query=”select Name from Win32_Processor”/> 

ManagedObject Name é usado para a exibição do nome da query. Este atributo pode ser alterado de acordo com a vontade do usuário sendo necessário editar o que está entre as aspas duplas. 

Por exemplo, se eu precisasse alterar o nome desta query anteriormente mencionada, eu poderia chamá-la de “Nome do Processador” deixando-a da seguinte forma: 

<ManagedObject Name=”Nome do Processador” Query=”select Name from Win32_Processor”/> 

Query indica quais são os parâmetros selecionados e qual é a query WMI que será executada: 

Query=”select parametro1,paramentro2,etc. from wmiquery” 

A Microsoft implementa nativamente estas queries na plataforma Windows, sendo apenas necessário que o serviço Windows Management Instrumentation esteja em execução no host local e/ou remoto onde a query será executada. 

Cada WMI Query possui diversas informações que podem ser extraídas de um host. A seguir temos todos os parametros que podemos obter de um processador usando a classe WMI Query Win32_Processor e também o tipo e cada um destes parametros: 

class Win32_Processor : CIM_Processor
{
  uint16   AddressWidth;
  uint16   Architecture;
  uint16   Availability;
  string   Caption;
  uint32   ConfigManagerErrorCode;
  boolean  ConfigManagerUserConfig;
  uint16   CpuStatus;
  string   CreationClassName;
  uint32   CurrentClockSpeed;
  uint16   CurrentVoltage;
  uint16   DataWidth;
  string   Description;
  string   DeviceID;
  boolean  ErrorCleared;
  string   ErrorDescription;
  uint32   ExtClock;
  uint16   Family;
  datetime InstallDate;
  uint32   L2CacheSize;
  uint32   L2CacheSpeed;
  uint32   L3CacheSize;
  uint32   L3CacheSpeed;
  uint32   LastErrorCode;
  uint16   Level;
  uint16   LoadPercentage;
  string   Manufacturer;
  uint32   MaxClockSpeed;
  string   Name;
  uint32   NumberOfCores;
  uint32   NumberOfLogicalProcessors;
  string   OtherFamilyDescription;
  string   PNPDeviceID;
  uint16   PowerManagementCapabilities[];
  boolean  PowerManagementSupported;
  string   ProcessorId;
  uint16   ProcessorType;
  uint16   Revision;
  string   Role;
  string   SocketDesignation;
  string   Status;
  uint16   StatusInfo;
  string   Stepping;
  string   SystemCreationClassName;
  string   SystemName;
  string   UniqueId;
  uint16   UpgradeMethod;
  string   Version;
  uint32   VoltageCaps;
}; 

Cada atributos da classe Win32_Processor deve ser separada por uma virgula ( , ) quando inserida no arquivo XML. Você pode brincar com os parametros inserindo-os no arquivo wmiqueries.xml.

IMPORTANTE! Faça uma cópia de segurança do arquivos e depois brinque editando-o e executando as queries em seu host local.

Como descobrir quais as classes WMI queries que o Windows suporta e quais o atributos destas classes?

Há uma repositório da Microsoft onde podemos verificar todas as WMI Queries disponíveis que podem ser utilizadas. Este repositório pode ser acessado no link abaixo: 

Microsoft Library – Win32 Classes 

Neste repositório você encontrará não somente as classes para o sistema operacional como também outros tipos, para hardware por exemplo. 

É uma ótima base de conhecimento e uma excelente forma de verificar quais atributos podem ser utilizados para obter as informações das quais precisa em um ou vários hosts remotos. 

Dica: Para quem possui um ambiente Active Directory, é simples o processo. Exporte o conteúdo do container onde estão os nomes do servidores e/ou workstations para um arquivo txt e importe para o GPInventory como realizamos no inicio com o teste local. 

NOTA: Se houverem descrições para cada servidor/workstations, será necessário remover estas informações do arquivo TXT. O mesmo deve conter somente os nomes dos hosts, um em cada linha para que seja possível utilizar o GPInventory.

Informação EXTRA!

Está fora do escopo deste post, mas como o GPInvenroty também trabalha com WMI para obter informações sobre GPOs, aqui também está o repositório onde há todas as classes WMI que podem ser utilizadas: 

Microsoft Library – RSoP WMI Classes 

Muito bem meu caro leitor, este é o fim de mais uma dica de utilidade diária para profissionais em IT. 

Espero que aproveitem as informações e quem tornem mais produtivo seu dia a dia. 

Até o próximo post e muito obrigado!

%d blogueiros gostam disto: