#powershell #exchange-server-2010 #exchange-management-shell
Вопрос:
Я новичок в PowerShell и изо всех сил пытаюсь изменить вывод в соответствии с тем, как я хочу.
Команда, которую я выполняю в командной консоли MS Exchange, такова:
Get-Mailbox user1 | Get-ADPermission | ? {($_.ExtendedRights -like "*send-as*") -and -not ($_.User -like "NT AUTHORITYSELF")} | Select User
Результат, который я получаю от приведенной выше команды, таков:
User
----
AGLuser4
AGLuser5
AGLgroupX
Однако я хотел бы получить результат в виде:
User
----
user4
user5
groupX
Возможно ли это сделать?
Заранее огромное спасибо.
Ответ №1:
Для этого используйте Вычисляемое свойство для вывода объектов только с их именами:
Get-Mailbox -Identity user1 |
Get-ADPermission |
Where-Object {($_.ExtendedRights -like "*send-as*") -and ($_.User -ne "NT AUTHORITYSELF")} |
Select-Object @{Name = 'User'; Expression = {$_.User.Split("",2)[1]}}
Комментарии:
1. Большое тебе спасибо, Тео, твое решение работает.
Ответ №2:
После небольшого тестирования Вы можете попробовать
(Get-Mailbox user1 | Get-ADPermission | ? {($_.ExtendedRights -like "*send-as*") -and -not ($_.User -like "NT AUTHORITYSELF")} | Select User).TrimStart("AGL")
Если это не сработает, вы можете попробовать
$Rights = Get-Mailbox user1 | Get-ADPermission | ? {($_.ExtendedRights -like "*send-as*") -and -not ($_.User -like "NT AUTHORITYSELF")} | Select User
$Rights = $Rights.TrimStart("AGL")
Отделка будет обрезать начало до точки задней косой черты, пока строка остается прежней.