Powershell

Exchange – Adicionando membros à um grupo de distribuição através de um arquivo CSV

Vou mostrar como adicionar membros à um grupo de distribuição a partir de um arquivo CSV.

Vamos criar um arquivo chamado “DistributionGroup.csv" e colocar os usuários dentro, conforme o formato abaixo:

image

Após salvar o arquivo no formato CSV, vamos importar para um grupo de distribuição no Shell do Exchange, conforme comando abaixo:

Import-Csv .\DistributionGroup.csv | ForEach {Add-DistributionGroupMember -Identity "MsItpro" -Member $_.smtpaddress}

Depois, basta ir até o grupo de ditribuição e conferir a opção membership, seus usuários irão aparecer na janela no lado direito.

image

Para maiores informações sobre o comando cima, visite:

Se você deseja que membros sejam adicionados dinâmicamente, você deve verificar a opção de Dynamic Distribution Group. Para maiores informações, visite:

Logo irei postar um artigo sobre Dynamic Distribution Group.

Share

Post to Twitter

Dica: E-book PowerShell para IT Pro

Uma dica para os leitores do Blog é o livro ebook gratuito do Daniel Donda. O livro aborda o Powershell com um foco para infraestrutura, que ajuda muito no dia a dia dos IT Pros.

Segue link para o site do Donda:

http://www.mcsesolution.com/Livros/e-book-powershell-para-it-pro.html

Para baixar o ebook clique na página abaixo que será redirecionado:

PowerShell-3.0-Ebook

Recomendo a leitura!

Abs.

Share

Post to Twitter

Quick Tips – Exchange 2010 Shell

Que tal executar um comando powershell, e confirmar cada uma das etapas. Na verdade, executar o comando no modo debug?

Tente isso e veja o resultado:

Test-MAPIConnectivity -Server <MailboxServer> -Debug

Um ótimo parâmetro para aqueles momentos onde o erro não parece fazer sentido…

;)

Share

Post to Twitter

Quick Tips – Exchange 2010 Shell

Quer saber em detalhes o que ocorre em um comando no Exchange Management Shell?

Faça um teste!

Primeiro use o Test-OutlookConnectivity -Protocol TCP para verificar o status da conexão RPC over TCP.

Depois utilize o comando Test-OutlookConnectivity -Protocol TCP – Verbose e compare o resultado.

;)

Share

Post to Twitter

Quick Tips – Exchange 2010 Shell

Você tem uma lista de alias em um .csv/.txt e deseja executar um mesmo comando para cada um deles? Usando dois cmd-lets em conjunto, você irá atingir esse objetivo.

Primeiro importamos o conteúdo, e logo em seguida com o uso do pipe aplicamos o cmd-let desejado em cada um dos alias contido no csv/txt através do loop “foreach”.

No exemplo à seguir, iremos aplicar um novo valor para o parâmetro IssueWarningQuota em cada alias:

printScreen_045

Com uma simples linha você aplicou o comando na lista que ja tinha “em mãos”.

;)

Share

Post to Twitter

Quick Tips – Exchange 2010 Shell

Muitas vezes queremos listar informações, de uma mailbox por exemplo, entretando as colunas ficam sobrepostas. Observe no exemplo abaixo:

printScreen_043

Para que as colunas sejam automaticamente ajustadas, utilize o parâmetro -AutoSize do modo de exibição ft (FormatTable). Confira no exemplo:

printScreen_044

;)

Share

Post to Twitter

Quick Tips – Exchange 2010 Shell

Essa é da série de dicas rápidas (quick tips), onde daremos dicas curtas e úteis sobre as ferramentas.

Sempre que você precisar lembrar algum comando no Exchange 2010, você pode usar o shell para consultar alguns exemplos. Vejamos abaixo.

Get-Help Set-RemoteDomain –Examples

 

image

A estrutura será sempre a mesma para outros comandos:

Get-Help – pedir ajuda Smiley piscando

Set/Get, etc – Comando a ser pesquisado

-Examples – Lista exemplos de uso do comando

[]s

Share

Post to Twitter

Hyper-V – Templates de VM com Differencing Disks

Introdução

Uma dica muito boa para se criar laboratórios no Hyper-v, ainda mais agora com o Windows 8, é fazer uso de templates e differencing disks.

Navegando por alguns blogs interessantes, encontrei uma dica matadora parar automatizar esse processo com o PowerShell e resolvi indicar aqui para vocês.

Vou demonstrar no meu lab como funciona e como é muito útil!

O Lync de referência é:

http://lyncdup.com/2012/06/creating-hyper-v-3-differencing-disks-in-server-2012-with-gui-and-powershell/

Recomendo que leiam com atenção o artigo original. Só quero repassar aqui na prática e mostrar que funciona. Alegre

Desenvolvimento

Podemos criar templates de VMs para criarmos novas máquinas virtuais com apenas alguns cliques. Nesse artigo vamos criar o template utilizando Differencing Disks.

Differencing Disks podem ser usados para se economizar espaço em disco ao se criar as novas VMs, e diminuir a quantidade de vezes que tem que atualiza-la, pois elas se utilizam do disco criado para uma VM parent, ou base como eu gosto de dizer.

Para saber mais sobre Differencing Disks recomendo o seguinte link do Technet Wiki:

http://social.technet.microsoft.com/wiki/contents/articles/1393.hyper-v-virtual-machine-vm-parent-child-configuration-using-differencing-disks.aspx#CreateDiffVMC

Tem toda a explicação e passo a passo para se criar.

Abaixo os passos necessários:

  • Criar uma VM base e seu VHD
  • Instalar todos os updates
  • Sysprep da VM
  • Tornando o disco read only
  • Criando o Diff Disk
  • Criando nova VM para usar o Diff Disk
Criar uma VM base e seu VHD

Nesse passo, criei uma VM comum “Windows 2008 R2 Template”.

clip_image002

Instalar todos os updates

Nessa fase, costumo fazer o seguinte:

  • Windows Update
  • Desabilito o firewall
  • Instalo o .NET Framework
  • Desabilito o Internet Explorer Enhanced Security Configuration (IE ESC)

Mas fique a vontade para customizar conforme sua necessidade.

clip_image004

 
Sysprep da VM

Nessa fase vamos fazer o sysprep da VM com a opção de generalize, deixando a opção para desligar a VM marcada. Dessa forma evitamos o velho problema de SID duplicado.

Iniciar –> executar –> sysprep.

clip_image005

clip_image006

clip_image007

Aguardar finalizar e desligar a VM.

clip_image008

 
Tornando o disco read only

O disco da VM base / parent deve ficar marcado como read only, com base nesse disco vamos criar os discos diferenciais futuros. Vamos até as propriedades da VM que criamos como template e marcar o disco como read only.

clip_image009

 
Criando o Differencing Disk

Aqui entra o diferencial que citei no artigo da introdução, segue novamente como referência:

http://lyncdup.com/2012/06/creating-hyper-v-3-differencing-disks-in-server-2012-with-gui-and-powershell/

Como já temos nossa VM base instalada, com o sysprep e o disco read only, é hora de criar os novos VHDs que usarão o differencing disk, isso irá reduzir drasticamente o espaço ocupado pelo novo VHD.

O mais legal é poder apenas copiar e colar os comandos, só troque para o nome que precisar e aponte o local dos arquivos e pronto, ele monta e liga a VM para você configurar. Smiley piscando

Exemplo:

New-VM –Name lab1-dc01 –MemoryStartupBytes 1024MB -SwitchName “LAB1” -Path E:\14-VMs\LAB1\lab-dc01 -Verbose

New-VHD –ParentPath "E:\14-VMs\Templates\Windows2008R2\Windows 2008 R2 Template.vhdx" –Path E:\14-VMs\LAB1\lab1-dc01\lab1-dc01.vhdx -Differencing

Add-VMHardDiskDrive lab1-dc01 -Path E:\14-VMs\LAB1\lab1-dc01\lab1-dc01.vhdx

Start-VM lab1-dc01

clip_image011

Se olharmos o Hyper-V agora, vamos verificar a VM já iniciada pronta pra ser configurada.

clip_image013

clip_image015

Agora se verificarmos o espaço ocupado pela VM em disco, podemos verificar a economia por estar usando os arquivos essenciais da VM base que criamos.

clip_image017

Abaixo o tamanho da nossa nova VM.

clip_image019

Para comparar, vamos abrir nossa VM original, criada como base.

image

O que acha? Uma VM normal com 13GB! E nossa outra VM com aproximadamente 1GB!

Conclusão

Divirtam-se Alegre

 

Tiago Ferreira

Share

Post to Twitter

Criando contas de usuários com o Windows PowerShell no Windows Server 2008

Objetivo: Automatizar a criação de contas de usuários no Windows Server 2008 pelo Windows PowerShell

1. Vá em iniciar e abra o Windows PowerShell

2. Conecte-se a OU CPD(Coloque a OU que você preferir no meu caso estou trabalhando com a ou CPD) e digite o comando:
$objOU=[ADSI]“LDAP://OU=CPD,DC=microsoft,DC=com”

3. Crie um usuário na OU digitando o comando:
$objUser=$objOU.Create(“user”,”CN=Flavio Honda”)

4. Informe o atributo obrigatório, o  nome de logon pré-Windows 2000 do usuário, digitando o comando:
$objUser.Put(“sAMAccountName”,”flavio.honda”)

5. Confirme as modificações no Active Directory digitando o comando:
$objUser.SetInfo()

6. Confirme se o objeto foi criado digitando o comando:
$objUser.distinguishedName

O nome Distinto do usuário deve ser retornado.

7. Examine os atributos do usuário que o o Active Directory configurou automaticamente digitando o comando:
$objUser | get-member

Esse comando conecta o objeto que representa o usuário ao cmdlet Get-Member, que enumera os atributos preenchidos.

Até a proxima,

Flavio Honda

http://flaviohonda.wordpress.com

Share

Post to Twitter

Como usar o Power Shell para encontrar contas inativas no AD?

Achei um post interessante no Hey Script Guy, segue a fonte:

http://blogs.technet.com/b/heyscriptingguy/archive/2010/07/20/hey-scripting-guy-how-can-i-use-windows-powershell-to-identify-inactive-user-accounts-in-active-directory-domain-services.aspx

Ele mostra alguns comandos para trabalhar com o módulo Active Directory no Power Shell. Você pode usa-lo para pesquisar contas inativas no AD. É muito útil na manutenção diária do seu domínio, fiz uma pesquisa rápida usando:

PS C:\Users\tiago.souza> Get-ADUser -Filter * -Properties “LastLogonDate” |
>> sort-object -property lastlogondate -descending |
>> Format-Table -property name, lastlogondate -AutoSize

Nessa brincadeira encontrei diversos usuários que já efetuavam logon há um bom tempo. Você pode fazer algo semelhante usando o mmc do Active Directory, em Saved Queries, mas esse comando lhe permite variar algumas opções, visite o link para saber mais.

[]s
Tiago Ferreira de Souza

Share

Post to Twitter