Como gerar um Exchange 2010 Relatório Lista de Salas com o PowerShell
Se você trabalha em um tipo de campus do ambiente, onde você tem salas de conferências espalhadas por múltiplos edifícios ou locais físicos, você pode ter ouvido falar da funcionalidade de localização quarto introduzidas com o Exchange 2010 e Outlook 2010. O Localizador de Sala permite aos usuários facilmente localizar um recurso Sala quando o agendamento de uma reunião no Outlook. Em vez de usuários que têm que percorrer a Global Address List (GAL) ou tente adivinhar quais os recursos quarto estão localizados em um local particular, eles podem selecionar a lista de sala apropriada, e ver todos os salas disponíveis. Dê uma olhada nesta captura de tela para ver isso em ação:

Listas dos Salas são essencialmente apenas um tipo especial de grupo de distribuição no Exchange. Para preencher a lista de salas, basta adicionar uma ou mais caixas de correio de recursos para o grupo. Depois de definir listas de sala de vários, você provavelmente vai chegar ao ponto onde você precisa gerar um relatório listando todas as listas de quarto e suas caixas de correio de recursos associados. A chave para gerar um relatório é simplesmente consultar os membros de cada grupo de distribuição que são designados como uma lista de salas. Dê uma olhada no seguinte código:
————————————————————————————————————————————————————————————
foreach($roomlist in Get-DistributionGroup -RecipientTypeDetails RoomList) {
$roomlistname = $roomlist.DisplayName
Get-DistributionGroupMember $roomlist.alias |
Select-Object @{n="Room List";e={$roomlistname}},
@{n="Room";e={$_.DisplayName}}
}
---------------------------------------------------------------------------------------------------------------------------------
Em um mundo perfeito esse código seria mais elegante e fazer melhor uso do gasoduto, mas o loop foreach é usado aqui como uma solução alternativa. Observe que, como nós iterar sobre cada grupo, onde recuperar a lista de membros usando o cmdlet Get-DistributionGroupMember.
Quando então canalizar a saída para selecionar objetos, onde usamos propriedades calculadas para construir um objeto personalizado:

Isso é bom para rever as listas dos membros da sala de forma interativa, mas na maioria dos casos você vai precisar para a saída deste para um arquivo externo. Podemos fazer isso através de uma simples adaptação ao nosso exemplo anterior. Basta salvar a saída para uma variável, e usar isso como seu InputObject com o Export-CSV, Out-File, etc.
---------------------------------------------------------------------------------------------------------------------------------
$rooms = foreach($roomlist in Get-DistributionGroup -RecipientTypeDetails RoomList) {
$roomlistname = $roomlist.DisplayName
Get-DistributionGroupMember $roomlist.alias |
Select-Object @{n="Room List";e={$roomlistname}},
@{n="Room";e={$_.DisplayName}}
}
Export-Csv -InputObject $rooms -Path C:\rooms.csv -NoTypeInformation
---------------------------------------------------------------------------------------------------------------------------------
Depois de executar o código acima, você pode abrir o arquivo rooms.csv no Excel e usar o recurso de filtro para visualizar facilmente os quartos associados a cada lista.
#ficaadica