2014-01-15 1 views
1

Я пытаюсь создать скрипт, где я могу получить адрес электронной почты всех пользователей в группе безопасности активного каталога.Экспорт адреса электронной почты всех пользователей в группе безопасности

То, что я до сих пор:

$Groups = Get-ADGroup -filter {Name -like "VIPEmail" } | Select-Object Name 
ForEach ($Group in $Groups) { 
    Get-ADGroupMember -identity $($group.name) -recursive | Select-Object samaccountname 
} 

Очевидно, что это будет возвращать только SAMAccountName, что она делает. Я заменю samaccountname на EmailAddress, и он ничего не делает.

Помощь! И спасибо.

ответ

2

Чтобы сохранить с исходным форматированием, так что вы можете увидеть, где вы пошло не так:

$Groups = Get-ADGroup -filter {Name -like "09-Admins" } | Select-Object Name 
ForEach ($Group in $Groups) { 
    Get-ADGroupMember -identity $($group.name) -recursive | Get-ADUser -Properties mail | Select-Object mail 
} 

Проблема заключается в том, что вы пытаетесь прочитать свойство, Тип возвращаемого Get-ADGroupMember не имеет (Microsoft.ActiveDirectory.Management.ADPrincipal). Вам нужно передать это возвращение в Get-ADuser и указать, что вы хотите, чтобы он вытащил свойство emailaddress. Get-ADUser по умолчанию не потянет большинство свойств пользователя, поэтому вам нужно указать любые дополнительные свойства, которые вы хотели бы получить (или просто выбрать все из них с помощью «-Properties *», но это небрежно).

Мьолинор избил меня до ответа, но я подумал, что стоит немного подумать о его ответе.

+0

Мне нравится этот ответ лучше :) Одна вещь, хотя если вы можете помочь. То, что я пытаюсь сделать, - это перенести всех пользователей из группы VIPEmail в другую базу данных обмена. Как использовать результаты «mail» с моей командой перемещения? – DanielOlivasJr

+0

Я не делал огромную работу в Exchange Shell, но нашел статью, которая может помочь. [link] (http://www.msexchange.org/articles-tutorials/exchange-server-2010/management-administration/moving-mailboxes-exchange-2010-part1.html) Похоже, что New-MoveRequest просто требуется параметр -Identity, чтобы определить, на что он нацелен, что дает вам довольно много возможностей для того, как вы нацеливаете запрос. – AtomicReaction

+0

Да, я знаю, как переместить почтовый ящик с помощью New-MoveRequest -Identity $ emailaddress -TargetDatabase «DB01», мои проблемы назначают переменной $ emailaddress адресами электронной почты, которые я вынимаю из группы VIPEmail. Имеет ли это смысл? – DanielOlivasJr

3

Что-то вроде этого:»

Get-ADGroup -filter {name -like 'VIPEmail'} | 
Get-ADGroupMember -Recursive | 
Get-ADUser -Properties Mail | 
select -ExpandProperty Mail 
+0

спасибо, что работает. Одна проблема, я получаю сообщение об ошибке "select: Невозможно обработать аргумент, потому что значение аргумента" obj "равно null", так или иначе, чтобы продолжить, если значение имеет значение null? – DanielOlivasJr

0

Я бы добавил уникальный. Поэтому, когда пользователь находится в большем количестве групп, отображается только одно сообщение:

Get-ADGroup -filter {Name -like "RO*" } | 
Get-ADGroupMember -Recursive | 
select -Unique| 
get-adUser -Properties mail | 
select -ExpandProperty Mail 

 Смежные вопросы

  • Нет связанных вопросов^_^