Microsoft Teams がユーザー プロファイル カードに現地時間を表示する方法

Microsoft Teams がユーザー プロファイル カードに現地時間を表示する方法

Teams の現地時間は、Exchange カレンダーの設定に依存する便利な機能です

2 月 14 日、Microsoft は Teams プロファイル カードを更新し、プロファイル所有者の現地時間とユーザーとユーザーの時間差を表示しました。プロフィールカードを表示するには、チャットやチャネルの会話など、Teams に表示されているユーザーのサムネイル写真にカーソルを合わせます。図 1 に示すように、選択したユーザーの現地時間と自分の時間の違いが表示されます。

現地時間の情報が Teams のプロファイル カードに表示される
図 1: Teams のプロファイル カードに現地時間情報が表示される

明らかに、誰かに連絡したり、その人との会議を手配しようとしている場合、彼らがいつ働いているかを知ることは貴重な情報です。また、Teams のフィードバック フォーラムで何度か要求された機能でもあります (こちらは 1つの例).

管理者は、プロファイルカードに現地時間を表示するために何もする必要はありません。プロファイル カードに表示される他の情報と同様に、現地時間は、ユーザーについて既にわかっている情報に依存します。この場合、ユーザーのカレンダーに定義された稼働時間。テナント アカウントとは別に、ゲスト アカウントの現地時間情報も表示されます。 Exchange Online の組織関係 は、テナントとゲストのホームドメイン間でカレンダー情報を共有するために存在します。現地時間の情報は、Teams コンシューマーユーザーとのチャットを含むフェデレーションチャットでは使用できません。

タイムゾーンに困惑

人々が奇妙なタイムゾーンにいるように見えたり、単にうまくいかなかった時差があるように見えるなど、不可解な結果を見るまで、これはすべて素晴らしいことです。Vasil Michev のゲスト アカウントに示されている現地時間を取得します (図 2)。私はアイルランドのダブリンにいて、ヴァシルはブルガリアのソフィアにいます。午前9時51分、チームはヴァシルの現地時間は午前7時51分で、彼は私より2時間遅れていると教えてくれました。言い換えれば、彼のタイムゾーンは大西洋中部のどこかにあります。これは、テクニカルエディタが Office 365 for IT プロフェッショナルの電子ブックは、海の真ん中で立ち往生すべきではありません。

Teams は、ブルガリアのユーザーにとって興味深いローカル タイム ゾーンを表示します。
図 2: ブルガリアのユーザーにとって興味深いローカル タイム ゾーンが Teams に表示される

誰かのタイムゾーンが4時間ずれるのはなぜですか?この質問に答えるには、Teams がタイム ゾーン情報を取得する場所を知る必要があります。

Outlook の 2 つのタイム ゾーン

Teams が誰かの場所を使用してタイム ゾーンを決定するのは論理的です。データを見ると、大丈夫そうです。

Get-User -Identity Vasil.Michev | fl city, stateorprovince, countryorregion

City            : Sofia
StateOrProvince : Sofia
CountryOrRegion : Bulgaria

ただし、もう少し考えてみると、メールボックスには地域構成があります。おそらく、これはTeamsがタイムゾーンを取得する場所です。この理論の問題は、ゲスト アカウントには、コンプライアンス レコードやその他のシステム データを格納するために使用される特別なクラウド専用メールボックスしかないことです。これらのメールボックスは、 Get-MailboxRegionalConfiguration テナント メールボックスの場合のようなコマンドレット:

Get-MailboxRegionalConfiguration -Identity Ken.Bowers | fl

DateFormat                            : dd/MM/yyyy
Language                              : en-GB
DefaultFolderNameMatchingUserLanguage : False
TimeFormat                            : HH:mm
TimeZone                              : Eastern Standard Time

したがって、その答えは、カレンダー構成など、リモート テナントがアクセスできるデータである必要があります。各カレンダーには稼働時間のタイム ゾーンがあり、会議をスケジュールするときや空き時間情報の公開に使用されます。組織は空き時間情報を他の Microsoft 365 テナントと共有でき、これが Teams で使用されるデータであることがわかりました。

ユーザーは、Outlook または OWA の設定を使用して、予定表のタイム ゾーンを設定できます。OWA は、Outlook デスクトップよりもタイム ゾーンの設定についてよりインテリジェントであり、[全般]タブで構成された地域のタイム ゾーンと予定表のタイム ゾーンの間に差があるかどうかを検出します。図 3 では、OWA がユーザーの地域のタイム ゾーン (東部標準時または UTC -5) と予定表の会議時間のタイム ゾーン (UTC) の間で検出された不一致の修正を提案していることがわかります。

OWA カレンダー設定でタイム ゾーンの不一致が検出されました
図 3: OWA の予定表設定でタイム ゾーンの不一致が検出される

通常、2 つのタイム ゾーンは同じですが、必ずしも同じである必要はありません。既定では、予定表のタイム ゾーンは、新しいメールボックスの作成時にテナントのタイム ゾーンに設定されます。その後、ユーザーは自分の場所に合わせてタイムゾーンを更新するか、管理者が メールボックス カレンダーの構成を設定する コマンドレット。例えば:

Set-MailboxCalendarConfiguration -Identity Nikki.Patia -WorkingHoursTimeZone "FLE Standard Time"

メールボックスまたはアカウント設定に対する変更と同様に、Teams クライアントがキャッシュを更新して変更を取得するまでに時間がかかることがあります。テストでは、Teams がカレンダーの調整をプロファイル カードに反映するまでに数日かかる可能性があることがわかりました。

カレンダー設定の確認

別に実行から メールボックスの取得予定表構成 コマンドレットを使用すると、管理者は グラフエクスプローラ をクリックして、Calendar API クエリを実行してユーザーの予定表設定を確認します。これは、Teams がユーザーのタイム ゾーン情報を取得する方法です。

クエリを実行するには、グラフ エクスプローラーを開き、アカウントにサインインします。要求本文に、グラフで処理する要求を入力します。この場合、スケジュールセクションで定義された2人のユーザーのカレンダー設定について知りたいです。開始時刻と終了時刻は任意の日付にすることができます。

{
    "schedules": [
        "jane.smith@office365itpros.com",
        "john.hopper@office365itpros.com"
    ],
    "startTime": {
        "dateTime": "2023-03-15T09:00:00",
        "timeZone": "GMT Standard Time"
    },
    "endTime": {
        "dateTime": "2023-03-15T18:00:00",
        "timeZone": "GMT Standard Time"
    },
    "availabilityViewInterval": 60
}

要求本文を設定した後、次の POST クエリを実行します。

https://graph.microsoft.com/v1.0/me/calendar/getSchedule

応答は、要求された時間帯のユーザーの可用性を示します。ただし、各ユーザーの応答に含まれるタイムゾーンにのみ関心があります。この例では、ユーザーのカレンダーのタイム ゾーンが東部標準時であることがわかります。

                ],
                "startTime": "08:00:00.0000000",
                "endTime": "17:00:00.0000000",
                "timeZone": {
                    "name": "Eastern Standard Time"
                }

まず、Vasil Michevのゲストアカウントのプロフィールカードに関する問題を報告することから始めました。テナントは Vasil のテナントと Exchange Online フェデレーション関係にあるため、カレンダー API を使用して空き時間情報検索を実行できます。これは、Outlook スケジュール アシスタントが会議の空き時間枠を見つける方法です。

ルックアップは、Vasilのカレンダーが カスタムタイムゾーン をクリックして、UTC からの 4 時間のタイム オフセットを適用します。これが、彼のプロフィールカードがそのような奇妙な現地時間を報告する理由です。

"startTime": "09:00:00.0000000",
                "endTime": "18:00:00.0000000",
                "timeZone": {
                    "@odata.type": "#microsoft.graph.customTimeZone",
                    "bias": -120,
                    "name": "Customized Time Zone",
                    "standardOffset": {
                        "time": "04:00:00.0000000",
                        "dayOccurrence": 5,
                        "dayOfWeek": "sunday",
                        "month": 10,
                        "year": 0

カレンダーに正しいタイム ゾーンが設定されていることを確認するのはユーザーの責任であり、管理者は不一致が存在しないことを確認するために果たすべき役割がないと判断する場合があります。ただし、タイム ゾーンが一致しないメールボックスがあるかどうかを知りたい場合は、PowerShell コードを使用して状態を検出できます。以下のスクリプト:

  • ユーザーのメールボックスを取得します。
  • 地域の構成をチェックして、ユーザーの場所に設定されたタイム ゾーンを取得します。
  • 予定表の構成をチェックして、会議の時間に設定されたタイム ゾーンを取得します。
  • ユーザー アカウントのプロパティをチェックして、物理アドレスを取得します。
  • 2 つのタイム ゾーン間で見つかった不一致を報告します。
$ModulesLoaded = Get-Module | Select Name
If (!($ModulesLoaded -match "ExchangeOnlineManagement")) {Write-Host "Please connect to the Exchange Online Management module and then restart the script"; break}
Write-Host "Finding user mailboxes..."
# OK, we seem to be fully connected and ready to go...
[array]$Mbx = Get-ExoMailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited
If (!($Mbx)) { Write-Host "Something happened and we found no user mailboxes - exiting" ; break }

$Report = [System.Collections.Generic.List[Object]]::new()
ForEach ($M in $Mbx) {
   Write-Host "Processing" $M.DisplayName
   $RegionalConfiguration = Get-MailboxRegionalConfiguration -Identity $M.UserPrincipalName
   $CalendarConfiguration = Get-MailboxCalendarConfiguration -Identity $M.UserPrincipalName
   $UserInfo = Get-User -Identity $M.UserPrincipalName
   $Status = $Null
   If ($CalendarConfiguration.WorkingHoursTimeZone -ne $RegionalConfiguration.TimeZone) {$Status = "Time zone mismatch"}

   $DataLine= [PSCustomObject][Ordered]@{ 
        Status          = $Status
        User            = $M.DisplayName
        UPN             = $M.UserPrincipalName
        CalendarZone    = $CalendarConfiguration.WorkingHoursTimeZone
        RegionalZone    = $RegionalConfiguration.TimeZone
        Language        = $RegionalConfiguration.Language
        DateFormat      = $RegionalConfiguration.DateFormat
        TimeFormat      = $RegionalConfiguration.TimeFormat
        Office          = $UserInfo.Office
        StreetAddress   = $UserInfo.StreetAddress
        City            = $UserInfo.City
        StateOrProvince = $UserInfo.StateOrProvince
        CountryOrRegion = $UserInfo.CountryOrRegion
        PostalCode      = $UserInfo.PostalCode
      
    }
    $Report.Add($DataLine)
}
$Report | Out-GridView

図 4 に、スクリプトからの出力例を示します。

PowerShell によって報告されたタイム ゾーンの不一致
図 4: PowerShell によって報告されたタイム ゾーンの不一致

地域構成と予定表構成を取得するコマンドレットは高速ではなく、スクリプトがメールボックスを処理するのに 10 ~ 15 秒かかることがあります。実際、これは Azure オートメーションによる処理に適した Exchange Online スクリプト.

ユーザーに最も適した調整

PowerShell の余分な行を挿入して、地域のタイム ゾーンと一致するようにカレンダーのタイム ゾーンを調整することで、タイム ゾーンの不一致を修正するのは簡単ですが、これはユーザーに任せた方がよい呼び出しです。彼らは自分のカレンダーを知っていて、彼らがどのように働くかを知っています。ただし、情報が手元にあるので、タイムゾーンが一致しないユーザーに、必要に応じて設定を更新して、Teams プロファイルカードに正確なデータが反映されるようにアドバイスできます。結局のところ、あなたは人々に悪い現地時間を見てほしくないでしょう?


このような洞察は簡単には得られません。テクノロジーを知り、舞台裏の見方を理解する必要があります。の知識と経験から利益を得る Office 365 for IT プロフェッショナル Office 365とより広いMicrosoft 365エコシステムをカバーする最高の電子書籍を購読することでチーム。

未分類

Posted by admin