Intuneでディスク容量低下を確認する

皆さんこんにちは。国井です。
突然ですがMicrosoft Intuneに求める機能ってなんですか?
ポリシー管理ですか?
アプリ管理ですか?
もちろんよく使われる機能だと思いますが、Intuneにはもうひとつ大事な機能にインベントリ管理機能があります。インベントリとはデバイスのハードウェアやソフトウェアなどの資産情報のことで、Intuneに登録されたデバイスはインベントリの情報を取得して管理センター画面から参照することができます。

ただ参照したいのは個々のデバイスの情報ではなく、すべてのデバイスの一覧なんですよね..そういったユーザーインターフェイスの使い勝手の悪さもあって、あまり活用しているって話を聞かないので今日はインベントリの活用方法として、ご質問でいただくことのあるデバイスごとのディスク空き容量をパーセンテージで表示する方法を書いてみたいと思います。

方法1 Log Analyticsから参照する

Microsoft IntuneのログはLog Analyticsに転送して参照することができることは以前にも紹介しました。

Log Analyticsから参照可能なログにIntuneDevicesという名のIntuneに登録されたデバイスの一覧を参照するログがあります。Intuneは1日1回デバイスのインベントリ情報を収集していて、その結果がIntuneDevicesテーブルから参照できるようになっています。

しかし今回参照したいのは直近の情報なので、KQLのクエリで直近のデバイス情報だけを表示させるarg_maxという関数を使います。

IntuneDevices
| summarize arg_max(TimeGenerated,*) by DeviceName

実行結果はこんな感じ

image

この画面ではわかりませんが、表示された個々のデバイスにはStorageTotalとStorageFreeという属性があり、それぞれディスク容量とディスクの空き容量を表しています。
StorageFreeをStorageTotalで割って100倍すれば空き容量の割合を出すことができます。
これをLog AnalyticsのKQLクエリで書くとこうなります。

IntuneDevices 
| summarize arg_max(TimeGenerated,*) by DeviceName
| project TimeGenerated, DeviceName, UserName, StorageFree, StorageTotal, Percent = round(100 * StorageFree / StorageTotal, 2)

実行結果はこちら。

image

round関数って第2引数に指定した数字が小数点以下を表すのだけど、整数でしか表示されませんでした。。

方法2 Intune PowerShellから参照する

IntuneログをLog Analyticsに転送する方法はMicrosoft Azureの契約が必要になるのでそれはちょっと..
という方はIntune PowerShellを使いましょう。基本的な使い方は以前に紹介したので

ここでは目的のスクリプトだけ置いておきます。
簡単に説明するとGet-IntuneManagedDeviceコマンドレットでデバイス情報を収集し、
デバイスごとに(空き容量 /全体容量) × 100 という計算をしてその結果を表示するようなものにしています。

$Datas = @()
$devices=Get-IntuneManagedDevice
Foreach ($device in $devices){
$Data = New-Object PSObject | Select-Object devicename,space
$space=($device.freeStorageSpaceInBytes/$device.totalStorageSpaceInBytes)*100
$Data.devicename = $device.devicename
$Data.space = $space
$Datas += $Data
}
$Datas | ft -AutoSize

これを実行するとこんな感じで結果が参照できます。

ここでは一例としてディスクの空き容量をパーセンテージで表示する方法を紹介しましたが、他にもいろいろな活用方法があると思いますので、ぜひ利用してみてください。