2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Microsoft365管理センターのメッセージセンターにある情報をPowerShellを使って取得する

Last updated at Posted at 2021-09-22

image.png
PowerShellを使ってメッセージセンターにある情報を取得します。この投稿では取得することをゴールとしています。取得した情報の活用方法を思いついたら別途投稿します。

作成したPowerShellをGitHubにアップロードしました。

作成したきっかけ

Twitterでふらりさんの素敵な投稿を見かけたからです。これを見て、仕組みを読み解くところからやってみたいと思いました。

使いかた

手順1: AzureADアプリを登録する

このスクリプトは「委任のアクセス許可」を使っています。
「委任のアクセス許可」を使ったAzureADアプリの登録手順については下記投稿を参照してください。

使用するアクセス許可は「委任のアクセス許可」-「Microsoft Graph」-「ServiceMessage.Read.All」です。
image.png

手順2: 作業端末に「MSAL.PS」モジュールをインストールする

「委任のアクセス許可」を簡単に使うためにモジュールをインストールします。こちらについても手順1と同じ投稿に記載していますので参照してください。

手順3:スクリプトの実行

以下のスクリプトを実行してください。グリッドビューがポップアップ開いて取得結果が表示されます。「変数の設定」に記載している各IDは手順1で取得したIDに置き換えてください。

メッセージセンターの情報を取得するスクリプト
# -------------------------------------------------
# 変数の設定
# -------------------------------------------------
# テナントのID
$tenantID = "XXX-XXX-XXX-XXX-XXX"

# AzureADアプリ
$clientID = "XXX-XXX-XXX-XXX-XXX"

# MSALのリダイレクトURL
$MSALRedirectUri = "msalXXX-XXX-XXX-XXX-XXX://auth"

# -------------------------------------------------
# 認証情報を取得
# ------------------------------------------------- 
# トークンを取得
$token = Get-MsalToken `
-TenantId    $tenantID `
-ClientId    $clientID `
-RedirectUri $MSALRedirectUri `
-Interactive 

$headerParams = @{
    'Authorization' = "bearer $($token.AccessToken)"
}

# -------------------------------------------------
# メッセージセンターの情報を取得
# ------------------------------------------------- 
$url = "https://graph.microsoft.com/v1.0/admin/serviceAnnouncement/messages"
$contentType = "application/json"

$responseFromAPI = Invoke-RestMethod `
-Method  GET `
-uri     $url `
-Headers $headerParams `
-ContentType $contentType

$result = @()
$result += $responseFromAPI.value

$pages = $responseFromAPI.'@odata.nextLink'

while([string]::IsNullOrEmpty($pages) -eq $false)
{
    $addtional = Invoke-RestMethod `
    -Method  GET `
    -uri     $pages `
    -Headers $headerParams `
    -ContentType $contentType
                  
    $result += $addtional.value

    $pages = $addtional."@odata.nextLink"
}

$result | Out-GridView

実行結果

グリッドビューにこのように表示されます。
image.png

参考情報

メッセージセンターやサービス正常性の情報をAPIから取得するために以前は「Office 365 サービス通信 API」が使われていました。2021年9月現在は、同情報がGraph APIで提供されるようになりました。「Office 365 サービス通信API」を使った情報提供は2021年12月17日で廃止になる予定のようなので、今後はGraph APIを使って実装する必要があります。

image.png

以上です。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?