OWA에서는 상단의 검색 창 또는 더 정교한 검색을 위해 검색 필터를 통해 메일 항목을 검색할 수 있습니다.
아래 이미지는 각각 [‘상단의 검색창 검색 방식(좌)] / [‘검색 필터 – 보낸/받는 사람’ 으로 검색 방식(우)]입니다.
아래에 안내된 동작 방식의 차이로 인해 아래 이미지와 같이 Display Name에")"가 1개 포함된 경우 OWA에서 검색 필터로 해당 사용자를 보낸 사람 또는 받는 사람으로 추가하여 메일 항목을 검색하면 메일 항목이 검색되지 않습니다.
[동작 방식]
위 일반 검색 창과 검색 필터를 통한 검색 동작 방식에는 차이가 있는데 [‘검색 필터 – 보낸/받는 사람’ 으로 검색 방식(우)]을 사용하여 검색 시에Json로그를 살펴보면 "SearchTerms"배열에 좀 더 정교한 검색어가 포함되어 있습니다.
아래 이미지의 왼쪽은 상단 일반 검색 / 오른쪽은 검색 필터로 검색한 Fiddler Json 로그입니다.
자세히 보면 왼쪽 일반 검색 로그에서 자동으로 쿼리구조상 방해가 되는 괄호“)”를 제거 후 검색하는 방식으로 동작하는 것을 확인할 수 있습니다.
QueryString을 자세히 확인하면 사용자 Display Name에 ")" 괄호가 포함되어있는 경우, ‘검색 필터 – 보낸/받는 사람’ 으로 해당 사용자 메일 항목을 검색하면 원래는 호출 구문이"QueryString": "(from:() OR from:())"가 정상 요청 형태인데 괄호가 추가됨으로 인해 "QueryString": "(from:()) OR from:())"로 구조가 변조되면서 메일 항목이 검색되지 않는 것입니다.
아래는 일반 검색(상단)에서 검색한 QueryString 호출 구문
아래는 검색 필터를 통해 검색한QueryString호출 구문 - ")"가 포함되어 검색됩니다.
[해결 방안]
이런 경우는사용자 Display Name에서 괄호를 제거하여 정상적으로 검색 필터 기능을 통해 사용자 메일 항목을 검색하게 하거나, Display Name에 "("를 아래와 같이 추가해주면 호출 구문이 변조되지 않고 문자로 인식되어 정상적으로 메일 항목이 검색되게 할 수 있습니다.
이전에사용되던Exchange Online PowerShellV1 모듈에서는 New-PSSession 명령어를 실행하여 Exchange Online에 연결하는 방식을 사용했으나, Exchange Online PowerShell V2, V3 최신모듈에서는 이전에 사용되던 New-PSSession 명령어 대신 Connect-IPPSSession 명령어를 사용하여 세션을 생성하고 사용할수있습니다.
Outlook에서 일정 공유를 수행할 때, 주로 개별 사용자 또는 다른 사용자의 이메일 주소를 공유 대상으로 추가할 수 있는데요.
하지만, Microsoft 365 그룹 전체를 일정 공유의 대상으로 Ui로 직접 추가하는 것은 불가능 합니다.
*일반적인 Outlook 인터페이스에서 Microsoft 365 그룹 메일 주소는 아래와 같이 직접 일정 공유 대상으로 추가되지 않습니다.
다만, 특정 사용자의 개별 캘린더와 Microsoft 365 그룹 및 구성원 간에 일정 공유를 위해
아래와 같이 PowerShell 스크립트를 사용하여 공유 권한을 추가한 후 그룹 구성원들에게 사용자의 개별 일정을 공유할 수 있습니다.
아래 가이드를 참고하셔서 진행해 보실 수 있습니다.
[사전 확인 사항]
1. 공유할 사용자의 일정 폴더 Name 확인 : '일정'인 경우 FolderPath 값은 "/일정" 입니다.
2.Microsoft 365 그룹 주소 및 포함된 구성원을 확인합니다.
[Powershell 가이드]
아래는 특정 사용자의 일정 폴더를 Microsoft 365 그룹 구성원들과 공유하는 PowerShell 스크립트입니다.
*환경에 맞게 수정이 필요한 명령어는 배경 색을 표시하였으니 참고하시기 바랍니다.
# Powershell을 관리자 권한으로 실행하고 아래 명령어를 입력하여 실행합니다. # ExchangeOnlineManagement 모듈 설치 (최초 1회만 실행합니다.) Install-Module ExchangeOnlineManagement # ExchangeOnlineManagement 모듈 불러오기 Import-Module ExchangeOnlineManagement # Exchange Online에 관리자 계정으로 연결 Connect-ExchangeOnline # 일정을 공유할 사용자의 이메일 주소를 입력합니다. $UserEmailAddress = pa@spitz.cloud # 사용자의 일정 폴더에 공유 대상으로 추가할 M365 그룹의 주소를 입력합니다. $GroupAddress = CSM365G@spitz.cloud # 사용자의 메일박스 가져오기 $CalendarOwner = Get-Mailbox -Identity $UserEmailAddress # M365 그룹 구성원들의 이메일 주소 조회 $GroupMembers = Get-UnifiedGroupLinks -Identity $GroupAddress -LinkType Members | Where-Object { $_.RecipientType -eq "UserMailbox" } | Select-Object -ExpandProperty PrimarySmtpAddress # 사용자의 일정 폴더 공유 대상으로 추가, "/일정" 부분에 해당 사용자의 일정 폴더의 Name을 입력해주시면 됩니다. if ($CalendarOwner -and $GroupMembers) { $CalendarFolder = $CalendarOwner | Get-MailboxFolderStatistics | Where-Object { $_.FolderPath -eq "/일정" } if ($CalendarFolder) { foreach ($Member in $GroupMembers) { try { # 그룹 구성원들에게 지정할 일정 폴더 공유 권한을 부여합니다. (예: Reviewer, Editor, Owner 권한) Add-MailboxFolderPermission -Identity "$($CalendarOwner.PrimarySmtpAddress):\$($CalendarFolder.Name)" -User $Member -AccessRights Reviewer Write-Host "일정 폴더를 $($Member)에게 성공적으로 공유하였습니다." } catch { Write-Host "일정 폴더를 $($Member)에게 공유하는데 오류가 발생하였습니다: $($_.Exception.Message)" } } } else { Write-Host "일정 폴더를 찾을 수 없습니다. 일정 폴더가 존재하는지 확인하세요." } } else { Write-Host "사용자 또는 그룹 구성원들을 찾을 수 없습니다. 이메일 주소와 그룹 주소를 확인하세요." }
[실행 결과]
[결과 확인]
아래와 같이 해당 사용자 PC - Web 및 Desktop Outlook에서 일정 공유 대상 및 사용 권한 확인 시
Powershell로 작업한 특정 Microsoft 365 그룹의 구성원들에게 특정 사용자의 일정 폴더에 권한 부여가 된 것을 확인하실 수 있습니다.
[참고]
*그룹 구성원들에게 일정 폴더 공유 권한 레벨에 대해서는 하기 문서에서 자세한 내용을 확인하실 수 있습니다.