domingo, 1 de setembro de 2013

Administrando Listas de Distribuição do Office365 com PowerShell

Administrar listas de distribuição no Exchange Online do Office365 sempre é uma tarefa bastante solicitada para a equipe de Service Desk da empresa. Com o PowerShell podemos deixar essa administração mais fácil e com isto reduzir o tempo e esforço de trabalho. Solução Muitas equipes efetuam a manutenção de listas de distribuição pela interface gráfica do Office365. Com o PowerShell podemos tornar essa tarefa muito mais rápida e eficiente. O script abaixo possui 08 opções que podem facilitar muito na administração das Listas de Distribuição do Office365. Importante ressaltar que o usuário que irá executar o script tenha as devidas permissões no Exchange Online do Offfice365 e que dependendo da opção selecionada e a quantidade de Listas de distribuição que o ambiente possui a execução poderá demorar, pois o script terá que percorrer todas as LDs. OPÇÃO01: Mostra quais as listas de distribuição o usuário é manager.É solicitado o UserPrincipalName (UPN) do usuário. OPÇÃO02: Mostra quais as listas de distribuição o usuário é membro. É solicitado o UserPrincipalName (UPN) do usuário. OPÇÃO03: Mosta os membros de uma determinada lista de distribuição. É solicitado o Email da lista de distribuição. OPÇÃO04: Adiciona um usuário a uma ou várias listas de distribuição. É solicitado o UserPrincipalName (UPN) do usuário e após a quantidade de LD a ser adicionado o usuário. Após definido a quantidade é solicitado o Email da LD conforme a quantidade definida. OPÇÃO05: Adiciona vários usuários a uma única lista de distribuição. É solicitado o Email da LD e após a quantidade de usuários a ser adicionado. Após definido a quantidade é solicitado UserPrincipalName (UPN) dos usuários conforme a quantidade definida. OPÇÃO06: Remove um usuários de uma única LD. É solicitado o Email da LD e o UserPrincipalName (UPN) do usuário. OPÇÃO07: Remove um usuários das função de Manager das LD e adiciona um novo Manager. É solicitado o UserPrincipalName (UPN) do usuário e o UserPrincipalName (UPN) do novo Manager. OPÇÃO08: Remove um usuários de todas as listas de distribuição que é membro. É solicitado o Email principal do usuário. OPÇÃO09: Finaliza a execução do script. Após a execução de cada opção, o script sempre retorna para o menu principal. Abaixo o Menu do script. Para usar o script, basta copiar o conteúdo abaixo no Notepad e salvar no formato .ps1. Após, basta executar o script no PowerShell. Administrando Listas de Distribuição do Office365 com PowerShell June 7, 2016 - Dicas, Microsoft Cloud, Office365, PowerShell - Tagged: Exchange Online, PowerShell Compartilhe: 0 24 0 17 0 Administrar listas de distribuição no Exchange Online do Office365 sempre é uma tarefa bastante solicitada para a equipe de Service Desk da empresa. Com o PowerShell podemos deixar essa administração mais fácil e com isto reduzir o tempo e esforço de trabalho. Solução Muitas equipes efetuam a manutenção de listas de distribuição pela interface gráfica do Office365. Com o PowerShell podemos tornar essa tarefa muito mais rápida e eficiente. O script abaixo possui 08 opções que podem facilitar muito na administração das Listas de Distribuição do Office365. Importante ressaltar que o usuário que irá executar o script tenha as devidas permissões no Exchange Online do Offfice365 e que dependendo da opção selecionada e a quantidade de Listas de distribuição que o ambiente possui a execução poderá demorar, pois o script terá que percorrer todas as LDs. OPÇÃO01: Mostra quais as listas de distribuição o usuário é manager.É solicitado o UserPrincipalName (UPN) do usuário. OPÇÃO02: Mostra quais as listas de distribuição o usuário é membro. É solicitado o UserPrincipalName (UPN) do usuário. OPÇÃO03: Mosta os membros de uma determinada lista de distribuição. É solicitado o Email da lista de distribuição. OPÇÃO04: Adiciona um usuário a uma ou várias listas de distribuição. É solicitado o UserPrincipalName (UPN) do usuário e após a quantidade de LD a ser adicionado o usuário. Após definido a quantidade é solicitado o Email da LD conforme a quantidade definida. OPÇÃO05: Adiciona vários usuários a uma única lista de distribuição. É solicitado o Email da LD e após a quantidade de usuários a ser adicionado. Após definido a quantidade é solicitado UserPrincipalName (UPN) dos usuários conforme a quantidade definida. OPÇÃO06: Remove um usuários de uma única LD. É solicitado o Email da LD e o UserPrincipalName (UPN) do usuário. OPÇÃO07: Remove um usuários das função de Manager das LD e adiciona um novo Manager. É solicitado o UserPrincipalName (UPN) do usuário e o UserPrincipalName (UPN) do novo Manager. OPÇÃO08: Remove um usuários de todas as listas de distribuição que é membro. É solicitado o Email principal do usuário. OPÇÃO09: Finaliza a execução do script. Após a execução de cada opção, o script sempre retorna para o menu principal. Abaixo o Menu do script. image Para usar o script, basta copiar o conteúdo abaixo no Notepad e salvar no formato .ps1. Após, basta executar o script no PowerShell. ####################################################################################################################################################################################################### Import-PSSession $(New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Authentication Basic -AllowRedirection -Credential $(Get-Credential)) cls write-host -ForegroundColor Yellow “ADMINISTRACAO DE LISTAS DE DISTRIBUICAO – EXCHANGE ONLINE OPCAO 1: Informa quais as Listas de Distribuicao o usuario e Manager. OPCAO 2: Informa quais Listas de Distribuicao o usuario e Membro. OPCAO 3: Lista os membros de uma Lista de Distribuicao especifica. OPCAO 4: Adiciona um usuario a uma Lista ou várias listas de Distribuicao. É solicitado a quantidade de LD. OPCAO 5: Adiciona vários usuários a uma única lista de distribuição. É solicitado a quantidade de usuários. OPCAO 6: Remove um usuario de uma Lista de Distribuicao especifica. OPCAO 7: Remove o usuario da função Manager das Listas de Distribuicao e e adiciona o novo Manager. OPCAO 8: Remove o usuário de todas as Listas de Distribuicao em que é Membro. OPCAO 9: Finaliza a execucao do Script OBS.: Os usuários deve estar ativo no AD e com licenca no Office365. Autor: Bolivar Andrade” Function Menu{ #Escreve as opções na tela Write-Host ” Menu: 1 – Listas de Distribuicao que o usuario e Manager 2 – Listas de Distribuicao que o usuario e Membro 3 – Usuarios de uma Lista de Distribuicao especifica 4 – Adicionar um usuario a uma/várias Lista de Distribuicao especifica 5 – Adicionar vários usuario a uma única Lista de Distribuicao 6 – Remover um usuario de uma Lista de Distribuicao especifica 7 – Substituicao do manager de Listas de Distribuicao 8 – Remover usuario das Listas de distribuicao 9 – Sair ” -ForegroundColor Yellow $mode = Read-Host “Escolha um modo de execução” #Seleciona a opção escolhida na variavel mode switch($mode){ #Opcao que exporta uma lista com os grupos e membros 1{ ListarManager } 2{ ListarDasListas } 3{ ListarUsuarios } 4{ AdicionarUsuario } 5{ AdicionarVariosUsuarios } 6{ RemoverUsuario } 7{ RemoveManager } 8{ RemoveDasListas } 9{ Fechar } } } Function ListarManager{ $Usuario = Read-Host “Digita o UPN do usuario” #IDENTIFICA O USUARIO E O DISPLAY NAME DO USUARIO $User = Get-User -Identity $Usuario #VERIFICAR AS LD QUE O USUARIO E MANAGR $ld = Get-DistributionGroup | where {$_.ManagedBy -ccontains $User} | select Identity if ($ld -ne $null) { $ld } else { write-host -ForegroundColor red “O usuário não possui Lista de Distribuição sob sua gerência” } #Chama o Menu Menu } Function ListarDasListas{ $user = Read-Host “Digita o E-MAIL principal do usuario” $groups = Get-DistributionGroup | select identity $DGs = $groups.identity | where-object { ( Get-DistributionGroupMember $_ | where-object { $_.PrimarySmtpAddress -contains $user}) } $DGs if ($DGs -eq $null) { Write-Host -ForegroundColor red “O usuário não pertence a nenhuma Lista de Distribuição” } #Chama o Menu Menu } Function Listarusuarios{ $ld = Read-Host “Digite o E-MAIL da Lista de Distribuicao” Get-DistributionGroupMember -Identity $ld #Chama o Menu Menu } Function AdicionarUsuario{ $user = Read-Host “Digite o E-MAIL principal do usuario” $Nld = Read-Host “Digite a quantidade de listas a ser adicionado o usuário” $val = 0 Do { $val++ $ld = Read-Host “Digite o E-MAIL da Lista de Distribuicao” Add-DistributionGroupMember $ld -Member $user } while($val -ne $Nld) #Chama o Menu Menu } Function AdicionarVariosUsuarios{ $ld = Read-Host “Digite o E-MAIL da Lista de Distribuicao” $Nusers = Read-Host “Digite a quantidade de usuarios a ser adicionado a lista” $val = 0 Do { $val++ $user = Read-Host “Digite o E-MAIL principal do usuario” Add-DistributionGroupMember $ld -Member $user } while($val -ne $Nusers) #Chama o Menu Menu } Function RemoverUsuario{ $ld = Read-Host “Digite o E-MAIL da Lista de Distribuicao” $user = Read-Host “Digite o E-MAIL principal do usuario” Remove-DistributionGroupMember $ld -Member $user -Confirm:$False #Write-Host -ForegroundColor red “Usuario” $user “removido a Lista de Distribuicao” $ld #Chama o Menu Menu } Function RemoveManager{ $Usuario = Read-Host “Digita o UPN do usuario” $Usuario_M = Read-Host “Digita o UPN do manager” #IDENTIFICA O USUARIO E O DISPLAY NAME DO USUARIO $User = Get-User -Identity $Usuario $User_DN = Get-User -Identity $Usuario | select DisplayName #COLETA O MANAGER DO USUARIO E O DISPLAY NAME DO MANAGER #$manager = Get-User -Identity $Usuario_M $manager_DN = Get-User -Identity $Usuario_M | select DisplayName #VERIFICAR AS LD QUE O USUARIO E MANAGR $ld = Get-DistributionGroup | where {$_.ManagedBy -ccontains $User} | select Identity if ($ld -ne $null) { #TROCAR O MANAGER DAS LISTAS PARA O NOVO MANAGER foreach ($lds in $ld) { Set-DistributionGroup $lds.Identity -ManagedBy @{Remove=$User_DN.DisplayName; Add=$manager_DN.DisplayName} Write-Host -ForegroundColor red “Manager da Lista” $lds.Identity “alterado de” $User_DN.DisplayName “para” $manager_DN.DisplayName } } else { write-host -ForegroundColor red “O usuário não possui Lista de Distribuição sob sua gerência” } #Chama o Menu Menu } Function RemoveDasListas{ $user = Read-Host “Digite o E-MAIL principal do usuario” $groups = Get-DistributionGroup | select identity $DGs = $groups.identity | where-object { ( Get-DistributionGroupMember $_ | where-object { $_.PrimarySmtpAddress -contains $user}) } if ($DGs -ne $null) { foreach( $dg in $DGs){ Remove-DistributionGroupMember $dg -Member $user -Confirm:$False Write-Host -ForegroundColor red “Usuario” $user “removido da lista” $dg } } else { Write-Host -ForegroundColor red “O usuário não pertence a nenhuma Lista de Distribuição ou está desabilitado no AD” } #Chama o Menu Menu } Function Fechar{ Exit }

0 comentários:

Postagem mais recente Página inicial