Я погуглил и создал два сценария. (1), (2)
(1) Первый - экспортировать «Полный доступ» общего почтового ящика с именем «ap.cz»
Get-Mailbox ap.cz | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | Select Identity,User,@{Name='Access Rights';Expression={[string]::join(', ', $_.AccessRights)}} | Export-Csv \\myserver\c$\fulla.csv –NoTypeInformation
(2) Второй - экспортировать «Отправить как» общий почтовый ящик под названием "ap.cz"
Get-Mailbox ap.cz | Get-ADPermission | where { ($_.ExtendedRights -like “*Send-As*”) -and ($_.IsInherited -eq $false) -and -not ($_.User -like “NT AUTHORITY\SELF”) } | Select Identity, User, Deny | Export-CSV \\myserver\c$\sendass.csv
Оба сценария работают нормально.
Вывод для (1) аналогичен этому
вывод для (2) аналогичен этому
Но в обоих случаях я получаю « Имя пользователя для входа
» в формате ( домен \ идентификатор пользователя
), где идентификатор пользователя - это число в моей организации.
Но мне нужно получить отображаемое имя / полное имя
вместо « Имя пользователя для входа
» при экспорте в CSV ..
Я не администратор биржи, ну разбираюсь в Exchange / PowerShell, но я проверяю / поддерживаю общую ИТ-инфраструктуру, и когда менеджер запрашивает список имен для «отправить как» или «полный доступ» для определенного почтового ящика, я должен экспортировать его, используя указанное выше скрипты и повторно преобразовать "имя пользователя для входа"
в отображаемое имя
вручную.
Может кто-нибудь посоветуйте, как изменить оба сценария для отображения "полного имени / отображаемого имени "
вместо логина
? Я пробовал гуглин, но не повезло ..
$ users.user.rawidentity устранит приведение типов и еще несколько строк ...
" Полный доступ » список
$users=Get-Mailbox ap.cz | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false}
$ss=$users.user.rawidentity | Where-Object {$_ -notlike "s-1*"}
foreach ($item in $ss){
$b = $item.Split("\")
$c=$b.Split("}")[1]
Get-ADUser -identity $c -properties DisplayName | select DisplayName
}
« Отправить как » список
$users=Get-Mailbox ap.cz | Get-ADPermission | where { ($_.ExtendedRights -like “*Send-As*”) -and ($_.IsInherited -eq $false) -and -not ($_.User -like “NT AUTHORITY\SELF”) } | Select User
$ss=$users.user.rawidentity | Where-Object {$_ -notlike "s-1*"}
foreach ($item in $ss){
$b = $item.Split("\")
$c=$b.Split("}")[1]
Get-ADUser -identity $c -properties DisplayName | select DisplayName
}
Еще один способ Powershell,
$gadu=get-aduser username -properties *
$gadu.Displayname
Сохраните вывод в переменную, затем добавьте имя поля, которое мы хотим просмотреть, в конец переменной, подумайте о $ gadu var в виде таблицы, не такое красивое, как форматирование, как указано выше, но все же удобное. Get-aduser может забавно рассказывать, какие поля он выводит, поэтому я использую -свойства *
в 99% случаев.
Наконец-то мне помогли с моим другом-программистом (который ничего не знает об объектах AD) и в итоге я получил следующее решение... Может быть, это и не идеальное решение, но и то, и другое работает, спасает цель!!! Хочу поделиться решением, чтобы кто-нибудь мог извлечь выгоду и или предложить лучшее решение...
(1) Первый - это экспорт "Full Access" общего почтового ящика с именем "ap.cz"
$users=Get-Mailbox ap.cz | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | Select User
$num=$users.length
for
($i=0; $i -lt $num; $i++)
{
Try
{
$item=$users[$i]
$itemcast=[string]$item
$b = $itemcast.Split("\")[1]
$c=$b.Split("}")[0]
Get-ADUser -identity $c -properties DisplayName | select DisplayName
}
catch
{
$error="error"
}
}
(2) Второй - это экспорт "Send As" общего почтового ящика с именем "ap.cz"
$users=Get-Mailbox ap.cz | Get-ADPermission | where { ($_.ExtendedRights -like “*Send-As*”) -and ($_.IsInherited -eq $false) -and -not ($_.User -like “NT AUTHORITY\SELF”) } | Select User
$num=$users.length
for($i=0; $i -lt $num; $i++)
{
Try
{
$item=$users[$i]
$itemcast=[string]$item
$b = $itemcast.Split("\")[1]
$c=$b.Split("}")[0]
Get-ADUser -identity $c -properties DisplayName | select DisplayName
}
catch
{
$error="error"
}
}
, оба скрипта были сохранены как script1. ps1 и script2.ps1, а вывод был сохранён в файл c:\araa.csv
Как экспортировать в csv
script2.ps1 | out-file c:\araa.csv