Я погуглил и создал два сценария. (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) аналогичен этому
Но в обоих случаях я получаю "User logon name
"в формате (domain\userid
), где идентификатор пользователя - это номер моей организации.
Но мне нужно получить display name/full name
вместо того "User logon name
"при экспорте в CSV ..
Я не администратор обмена и не разбираюсь в Exchange / PowerShell, но я проверяю / поддерживаю общую ИТ-инфраструктуру, и когда менеджер запрашивает список имен, для «отправить как» или «полный доступ» для определенного почтовый ящик, мне нужно экспортировать его, используя приведенные выше сценарии, и повторно преобразовать "user logon name"
к display name
вручную.
Может кто-нибудь посоветовать, как изменить оба скрипта для отображения "full name/display name"
вместо того login name
? Я пробовал гуглин, но не повезло ..
$ 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
}
Наконец, я получил помощь от моего друга-программиста (который ничего не знает об объектах AD) и в итоге получил решение, приведенное ниже. Это может быть не идеальное решение, но оба работают, спасает цель !! Хочу поделиться своим решением, чтобы кто-то получил выгоду или мог предложить лучшее решение.
(1) Первый - экспортировать «Полный доступ» общего почтового ящика под названием «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) Второй - экспорт «Отправить как» из общего почтового ящика под названием «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
Powershell еще один способ,
$gadu=get-aduser username -properties *
$gadu.Displayname
Сохраните вывод в переменную, затем добавьте имя поля, которое мы хотим просмотреть, в конец переменной, подумайте о $ gadu var как о таблице, не такой модной, как форматирование, как указано выше, но все же удобно. Get-aduser может забавно рассказывать, какие поля он выводит, поэтому я использую -properties *
99% времени.