none
По логину получить список ящиков RRS feed

  • Вопрос

  • Стоит задача, для техперсонала выводить данные о том к каким ящикам пользователь имеет доступ на FullAccess и Sendas. То есть по логину мне нужно получить список тех ящиков к которым пользователь может подключаться. скриптик на powershell никто такой не писал?
    Если софт у вас повис, значит левый был релиз!
    • Перемещено Hengzhe Li 12 марта 2012 г. 6:45 forum merge (От:Exchange Server 2007)
    27 июля 2010 г. 11:19

Ответы

  • Вот так, например, если я правильно понял задачу. Вместо Administrator подставьте вашу учетную запись. А вместо "FullAccess*" подставьте "*SendAs*", если нужны права SendAs.

    Get-Mailbox | Get-MailboxPermission | where { ($_.AccessRights -like "FullAccess*") -and ($_.IsInherited -eq $false) -and ($_.User -like "*Administrator*") }

    Чтобы расширить колонки допишите

    | ft -a

    А чтобы сохранить результат в файле допишите

    >> c:\test.txt

    В итоге у вас может получится такой скрипт:

    Get-Mailbox | Get-MailboxPermission | where { ($_.AccessRights -like "FullAccess*") -and ($_.IsInherited -eq $false) -and ($_.User -like "*Administrator*") } | ft -a >> c:\test.txt


    Посетите http://danshin.ms - ИТ Блог по Exchange и технологиям Microsoft

    • Предложено в качестве ответа Yegor StartsevModerator 27 июля 2010 г. 17:29
    • Помечено в качестве ответа Kuznetsov Pavel 28 июля 2010 г. 6:08
    27 июля 2010 г. 13:51
    Модератор
  • # Запрос почтовых ящиков подразделений
    $db_podr = exmbccr\sg-podr\podr"
    $login = "vasya"

    $mailboxes = get-mailbox -Database $db_podr -ResultSize unlimited 
    $mb_fullaccess = ""
    $mb_sendas = ""
    foreach ($mailbox in $mailboxes)
    {
       $mbrights = get-mailboxpermission $mailbox.name
       foreach($right in $mbrights) {
       
          if ($right.user -like $login -and $right.accessRights -like "*FullAccess*") 
     {
      $mb_fullaccess += $mailbox.DisplayName+", "+$mailbox.PrimarySmtpAddress 
            
     }
     
     if ($right.user -like $login -and $right.accessRights -like "*SendAs*") 
     {
      $mb_sendas += $mailbox.DisplayName+", "+$mailbox.PrimarySmtpAddress
            
     }
       }
    }
    "fullaccess"
    $mb_fullaccess
    "Sendas"
    $mb_sendas


    Если софт у вас повис, значит левый был релиз!
    • Помечено в качестве ответа Kuznetsov Pavel 28 июля 2010 г. 6:08
    28 июля 2010 г. 6:08

Все ответы

  • Вот так, например, если я правильно понял задачу. Вместо Administrator подставьте вашу учетную запись. А вместо "FullAccess*" подставьте "*SendAs*", если нужны права SendAs.

    Get-Mailbox | Get-MailboxPermission | where { ($_.AccessRights -like "FullAccess*") -and ($_.IsInherited -eq $false) -and ($_.User -like "*Administrator*") }

    Чтобы расширить колонки допишите

    | ft -a

    А чтобы сохранить результат в файле допишите

    >> c:\test.txt

    В итоге у вас может получится такой скрипт:

    Get-Mailbox | Get-MailboxPermission | where { ($_.AccessRights -like "FullAccess*") -and ($_.IsInherited -eq $false) -and ($_.User -like "*Administrator*") } | ft -a >> c:\test.txt


    Посетите http://danshin.ms - ИТ Блог по Exchange и технологиям Microsoft

    • Предложено в качестве ответа Yegor StartsevModerator 27 июля 2010 г. 17:29
    • Помечено в качестве ответа Kuznetsov Pavel 28 июля 2010 г. 6:08
    27 июля 2010 г. 13:51
    Модератор
  • $mailboxes = get-mailbox
    foreach ($mailbox in $mailboxes)
    {
       $mbrights = get-mailboxpermission $mailbox.name
       foreach($right in $mbrights) {
            if ($right.user -like "*логин*" -and $right.accessRights -like "*доступ*") {$right.identity}
       }
    }

    После отправки уже увидел - у Михаила изящнее :)

    27 июля 2010 г. 14:54
    Модератор
  • # Запрос почтовых ящиков подразделений
    $db_podr = exmbccr\sg-podr\podr"
    $login = "vasya"

    $mailboxes = get-mailbox -Database $db_podr -ResultSize unlimited 
    $mb_fullaccess = ""
    $mb_sendas = ""
    foreach ($mailbox in $mailboxes)
    {
       $mbrights = get-mailboxpermission $mailbox.name
       foreach($right in $mbrights) {
       
          if ($right.user -like $login -and $right.accessRights -like "*FullAccess*") 
     {
      $mb_fullaccess += $mailbox.DisplayName+", "+$mailbox.PrimarySmtpAddress 
            
     }
     
     if ($right.user -like $login -and $right.accessRights -like "*SendAs*") 
     {
      $mb_sendas += $mailbox.DisplayName+", "+$mailbox.PrimarySmtpAddress
            
     }
       }
    }
    "fullaccess"
    $mb_fullaccess
    "Sendas"
    $mb_sendas


    Если софт у вас повис, значит левый был релиз!
    • Помечено в качестве ответа Kuznetsov Pavel 28 июля 2010 г. 6:08
    28 июля 2010 г. 6:08