Postagens

BIG-IP Cookie decode

O balanceador de carga da F5 utiliza um cookie codificado que é usado para persistir conexões. Escrevi uma pequena extensão para o chrome que permite reverter a codificação da F5 e expor a informação de IP e porta. Isto pode ser extremamente útil em situações de trobleshotting. Instale a extensão aqui. Leia sobre a codificação da F5 aqui.

Usando Powershell para adicionar fotos ao Active Diretory

Imagem
Esse artigo é para aqueles que já tiveram, ou tem a necessidade de configurar uma foto nas propriedades do usuário no Active Directory. No Exchange 2010 e no Lync 2010 estas fotos são exibidas no client do Lync e no Outlook: Além do AD existe a possibilidade do uso do SharePoint para armazenamento das fotos. No Lync 2010 também é possível o próprio usuário configurar a sua foto apontando para um endereço na internet. Para aqueles que não tem ou não querem criar uma estrutura de SharePoint para isso, a unica opção para visualizar fotos no Outlook é armazena-las no AD. Para isso criei uma pequena aplicação GUI em Powershell que permite visualizar, alterar e limpar estas propriedades do usuário. O script altera as propriedades  thumbnailPhoto e  jpegPhoto. Existe uma recomendação para que estas fotos não ultrapassem os 100Kb. Para rodar o script você precisará de Powershell 2.0 ou superior, o modulo de ActiveDirectory, e de direito de gravação nestas propriedade

Resolvendo a Provinha do Google Developer Day Brasil 2011 com Powershell

Basicamente a provinha é composta por 5 questões, onde somos apresentados ao idioma Googlon, até então um idioma desconhecido. Arqueólogos encontraram dois pergaminhos, e baseado em um dos pergaminhos, temos que descobrir informações do outro. Abaixo reproduzo o conteúdo de uma provinha com todas as questões resolvidas utilizando somente powershell. Lembre-se de que existe variações da provinha para cada usuário. Instruções Responda à provinha preenchendo os campos apropriados dessa página.A correção é feita inteiramente por máquina, portanto você deve responder exatamente ao que se pede, sem colocar nenhum dado adicional, explicação ou formatação. Você pode (e deve) escrever programas para ajudar a calcular as respostas das questões, mas o seu código-fonte não deve ser enviado. Nas respostas que pedem texto, espaços e tabulações em excesso serão desconsideradas, portanto não se preocupe caso você digite espaços ou tabulações a mais, mas tome cuidado para não cortar ou juntar

Consultando usuario atualmente logado

Me perguntaram esta semana se era possivel descobrir qual era o usuário atualmente logado em uma estação utilizando o PowerShell. Isso pode ser feito da mesma maneira que fariamos em um vbscript. A diferença é que usaremos muito menos código: Get-WMIObject Win32_ComputerSystem -Comp Machine01 | select-object username O segredo é consultar a classe WMI chamada Win32_ComputerSystem que contém a informação do usuário logado. Usando Vbscript consultamos a mesma classe mas teriamos de usar 8 ou 10 linhas a mais pra obter o mesmo resultado.

List IIS 7.0 Worker Process with PowerShell

A partir do IIS 7.0 a Microsoft descontinuou o iisapp.vbs que era uma das ferramentas de linha de comando mais usadas pelos administradores de IIS 6.0. Agora você deve usar o appcmd.exe que é a ferramenta primária de linha de comando do IIS 7. Muito embora seja possivel obter resultados similares utilizando o appcmd.exe, eu sentia falta de apenas digitar iisapp e ver a lista de applications pools executando naquele momento. Utilizando o IIS Snap-in for PowerShell pus um fim definitivo ao meu sofrimento com a função abaixo: function iisapp() { get-childItem IIS:\AppPools\ | ` foreach{ get-childitem ("IIS:\AppPools\" + ` $_.Name.ToString() + "\WorkerProcesses") } | ` select-object appPoolName, State, ProcessId, ` StartTime } Sei que é uma longa linha, mas você já é um cara sortudo por não ter que digita-la.

Lendo o Windows Tasks de um servidor remoto

Nesta semana surgiu a necessedidade de conseguir uma lista das tarefas agendadas em um servidor remoto. Tentei usando a classe WMI disponivel para isso, mas como o filosofo Jagger disse uma vez: 'You can't always get what you want.' Depois de uma pequena pesquisa encontrei um artigo sobre o uso da API SCHTASK. A referência completa pode ser encontrada no MSDN em http://msdn.microsoft.com/en-us/library/aa383608(VS.85).aspx. Você se perguntaria: Então porque não posso usar a classe WMI pra fazer isso? Bem, acontece que o Windows tem duas APIs diferentes para gerenciar as tarefas agendadas. A primeira é a Task Scheduler API usada pelo Task Scheduler e pelo utilitário Schtasks, a segunda é a conhecida AT API usada pelo comando AT.exe e pela classe WMI Win32_Schedule. A maior parte das minhas tarefas agendadas foi criada usando a interface do Task Scheduler, então quando consulto a classe WMI não recebo resultado nenhum. O script abaixo contorna este problema. Ele irá func

Filtrando o Log do IIS

Lidar com grandes quantidades de texto sempre foi um desafio para administradores Windows. Por anos, lutamos com ferramentas pobres para conseguir tirar alguma informação útil de arquivos texto. Por fim acabávamos por mandar o arquivo para um computador Unix só pra usar uma das ferramentas legais que esse sistema operacional sempre teve. Agora “Seus problemas acabaram”, com o Powershell é possível lidar bem com boa parte destes arquivos, e os administradores Unix não vão rir mais de você (ou vão rir menos). Aqui, vou mostrar como fazer uma query em um arquivo de Log do IIS. Sei que existem ferramentas prontas para fazer queries no log do IIS, mas estou iniciando uma série chamada: Faça com o PowerShell e use apenas uma linha. O objetivo aqui é demonstrar quais foram os piores tempos de resposta para uma pagina em especifico. Uma linha no log do IIS costuma se parecer com isto: 2009-01-04 01:57:42 W3SVC1381969044 172.23.33.67 POST /main.aspx?content=ContactRegister.ascx&Channe