2016-06-07 4 views
0

PowerShell을 사용하여 공유 사서함을 탐색하고 특정 액세스 권한이있는 사용자를 얻으려고합니다. 나는 이것을 할 수 있지만 문제는 사서함에 액세스 권한이있는 여러 사용자가있는 경우입니다.동일한 변수를 여러 줄로 한 줄에 출력

이 경우 하나의 사서함 대신 하나의 사서함에만 코드를 사용합니다.

Output

그러나 나는 이런 식으로 뭔가 좀하고 싶습니다 :

Get-MailboxPermission -Identity [email protected] | select Identity, User | 
    where user -like '*@*' 

나는 결과로이 얻을 :

Desired_Output

다음과 같이 내가 사용하는 코드입니다

동일한 ID를 가진 사용자를 같은 줄에 표시 할 수있는 방법이 있습니까?

답변

0

그런 다음 calculated properties으로 그룹을 확장 사서함으로 그룹 사용자에게 Group-Object를 사용할 수 있습니다 하나에 수집 된 자신의 Identity 속성에 의해

... | Group-Object Identity | 
    Select-Object @{n='Identity';e={$_.Name}}, 
        @{n='User';e={$_.Group.User -join ', '}} 

Group-Object 그룹 당신의 결과 개체를, 동일한 ID 값 즉, 모든 객체 GroupInfo 개체 (정확히는 Group 속성에 있음). 계산 된 속성이있는 Select-Object 문은 각 그룹에 대해 새 사용자 지정 개체를 만듭니다. User 계산 된 속성은 그룹화 된 개체의 User 속성을 확장하고 이름을 쉼표로 구분 된 목록에 조인합니다.

$_.Group.User -join ', '을 사용하려면 PowerShell v3 이상이 필요합니다. 이전 버전에서는 다음과 같이 바꿔야합니다.

($_.Group | Select-Object -Expand User) -join ', ' 
+0

고마워요! 나는 그것을 완전히 이해하지 못한다. 그러나 그것은 효과가있다! –

+0

@LukeK 설명을 추가했습니다 (참조한 문서도 참조하십시오). 또한 문제가 해결 되었다면 [대답 수락] (http://meta.stackoverflow.com/a/5235)을 고려하십시오. –

+0

할 것입니다. 또한 한 가지 다른 질문입니다. 사서함에 전체 액세스 사용자가없는 경우 비워 두는 것이 좋습니다. 현재는 아무 것도 인쇄하지 않고 해당 사서함을 건너 뜁니다. 사용자 열에 Identity가 표시되지 않도록하는 방법이 있습니까? –

관련 문제