Microsoft에서 OneDrive와 관련된 새로운 기능을 소개합니다.

 

Feature Name : Microsoft OneDrive: Open in App

Feature ID : 124813

 

기능 내용 : 이 기능을 통해 OneDrive 및 SharePoint 웹 사용자는 비-Office 파일을 데스크톱에 설치된 네이티브 앱에서 열거나 수정할 수 있습니다. 사용자가 파일을 수정하면 일부 변경 사항이 OneDrive 또는 SharePoint와 동기화됩니다.

 

출시 및 런칭 날짜:

  • 개발 중이며, 표준 릴리스는 2023년 12월 초부터 출시되어 2024년 1월 말에 런칭될 예정입니다.
  • 현재 출시는 시작되었지만, 아직 일반 사용자에게는 제공되지 않은 상태입니다.

기능 로드맵 참고 :  Microsoft 365 로드맵 | Microsoft 365 

[이슈]

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 PowerShell V1 모듈에서는 New-PSSession 명령어를 실행하여 Exchange Online에 연결하는 방식을 사용했으나, Exchange Online PowerShell V2, V3 최신 모듈에서는 이전에 사용되던 New-PSSession 명령어 대신 Connect-IPPSSession 명령어를 사용하여 세션을 생성하고 사용할 있습니다.

 

아래 가이드를 참고하여 현재 V2 이상 모듈인지 확인하신 진행해 보시기 바랍니다.
1.현재 ExchangeOnlineManagement 모듈 버전을 확인합니다.

Get-Module ExchangeOnlineManagement

참고 : Exchange Online PowerShell V2 모듈 및 V3 모듈 정보 | Microsoft Learn

 

 

2.자격 증명 인증 후 Exchange Online에 연결합니다.

$usercredential = Get-Credential

Connect-IPPSSession -Credential $usercredential -ConnectionUri https://outlook.office365.com/powershell-liveid/

참고 : Connect-IPPSSession (ExchangePowerShell) | Microsoft Learn

 

3.배포 그룹의 속성 설정 후 변경된 정보를 확인합니다.

set-DistributionGroup -Identity 'shtest@spitz.cloud' -CustomAttribute1 'shtest'

get-DistributionGroup -Identity 'shtest@spitz.cloud' | fl

 

4.Connect-IPPSSession 명령어 실행 오류 있을 경우, WinRM 설정을 확인해 보시기 바랍니다.

자세한 내용 참고 : WinRM에서 기본 인증 켜기

winrm quickconfig (테스트 PC 이미 설정되어 있기 때문에 아래와 같이 표시됩니다.)

winrm get winrm/config/client/auth

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 그룹의 구성원들에게 특정 사용자의 일정 폴더에 권한 부여가 된 것을 확인하실 수 있습니다.

 

[참고]

*그룹 구성원들에게 일정 폴더 공유 권한 레벨에 대해서는 하기 문서에서 자세한 내용을 확인하실 수 있습니다.

CalendarPermissionLevel | Microsoft Learn

Add-MailboxFolderPermission (ExchangePowerShell) | Microsoft Learn

 

안녕하세요. 이 블로그에서는 Microsoft 365, Endpoint(Intune), Denfender, Azure,

PowerPlatform, Azure AD, Copilot 등의 주제와 관련된

클라우드 기능 및 엔터프라이즈 환경에서의 최적화에 대한 팁과 가이드를 공유합니다.

(관리자 업무 최적화, 오류 해결 방법, 최신 업데이트 사항, 권장 사항, 사용 사례 등)

 

[이 블로그에서 주로 다루는 주제]

 

1. Microsoft 365

 

2.Microsoft Endpoint

 

3.Microsoft Denfender

 

4.Power Automate

 

5.Active Directory <-> Hybrid Azure AD

 

6.Copilot을 활용한 인공지능 코딩 도우미 개발 팁

+ Recent posts