quarta-feira, 26 de junho de 2013

Instalação de Softwares Remoto com PSEXEC

O poderoso PSEXEC

Desenvolvido por Mark Russinovich, o PsTools é um pacote de pequenos programas de linha de comando (MS-DOS) que auxilia na execução de várias tarefas administrativas no ambiente Windows.
Ele faz parte do pacote Sysinternals Suite, que pode ser obtido aqui.
Hoje vou falar sobre o PSEXEC, que é utilizado para execução de processos remotos, como por exemplo instalação e desinstalação de softwares.
Muitas são as vezes que nos deparamos com uma lista de PC's que precisam ter um software instalado e já pensamos "fodeu".... eu por exemplo sofri bastante com a instalação do agente da McAfee, mas vai aqui minha contribuição de como realizar uma tarefa destas com o menor esforço administrativo (viva as provas da MS).
Abaixo temos o comando utilizado no PSEXEC para instalação, lembrando que ao executar precisamos garantir que tenhamos acesso de Administração na estação remota:
PsExec.exe @%arquivo% -i -d -s \\%server%\Aplicativo.exe %argumento%
Entendendo o que estamos fazendo:
@%arquivo% : PSEXEC fará a execução do comando em cada computador listado no arquivo, ex.: Arquivo com a lista de máquinas a terem o antivirus instalado localizado em C:\Temp, PSEXEC.exe @C:\Temp\Lista.txt
- s :roda o processo remotamente com a conta System
- d :não espera o processo finalizar
- i :Executa o programa com interação ao ambiente de trabalho da sessão especificada no sistema remoto. Se nenhuma sessão for especificada, o processo é executado na sessão de console.
%argumento% :Devem ser verificados os argumentos que podem ser utilizados pelo seu executável ou MSI, por exemplo poderíamos colocar para instalar de forma silenciosa com o parâmetro /Silent.
Espero que este post ajude muitos amigos e colegas.

segunda-feira, 24 de junho de 2013

Desbloqueio de Usuários no Active Directory com PowerShell

Como Desbloquear Usuários no AD com PowerShell

Só quem já sofreu com o Conficker (ou outros vírus) sabe a dor de cabeça que é ter milhares de contas usuários bloqueados ao mesmo tempo. Com base neste problema de bloqueios de senha em massa, deixo aqui minha contribuição com alguns comandos em PowerShell para diminuir a sua (nossa) dor de cabeça.

Primeiramente vamos importar o módulo do Active-Directory no PowerShell:

Executar o comando: Import-Module activedirectory










Um cmdlet que ajuda bastante é o Search-ADAccount. Ele tem como retorno: usuários do Active Directory, contas de computador e contas de serviço. Muito útil.

Para verificar quais as contas estão bloqueadas em uma determinada OU execute o seguinte comando:
  • Search-ADAccount -LockedOut -SearchBase "%caminho%" | where {$_.ObjectClass -eq'user'} | FT Name,ObjectClass -A

Onde %caminho% é o caminho da OU que se quer saber se existem usuários bloqueados. Por exemplo:"OU=Users,OU=Accounts,OU=Liverpool,OU=Sites,DC=Contoso,DC=com" . Será gerada uma lista com todas as contas bloqueadas.

Para desbloqueio das contas utilize o comando Unlock-ADAccount. 
No exemplo abaixo são desbloqueadas todas as contas da OU "OU=Users,OU=Accounts,OU=Liverpool,OU=Sites,DC=Contoso,DC=com" 

  • Search-ADAccount -LockedOut -SearchBase "OU=Users,OU=Accounts,OU=Liverpool,OU=Sites,DC=Contoso,DC=com" | Unlock-ADAccount

Mais informações sobre como gerenciar o Active Directory pelo PowerShell podem ser obtidas no seguinte link: http://technet.microsoft.com/en-us/library/ee617195.aspx