Intuneに登録されたデバイスの名前を一括で変更する

皆さんこんにちは。国井です。
Intuneでデバイス管理を行う際、[すべてのデバイス]からデバイス一覧を見ると登録されたデバイスの情報を参照できると思いますが、このときにコンピューター名がバラバラだな.. と感じることありませんか?
Windowsの場合はAutopilotから展開すれば、ある程度コンピューター名は統一感のあるものにできるけど、iOSだと「xxxのiPhone」みたいな恥ずかしさしかない名前が並んだりするのです。

ということで今日はIntuneに登録されたデバイスのコンピューター名を変更する方法、それも複数デバイスを一括で変更する方法についてみていきます。
2023年10月27日追記
IntuneからWindowsのコンピューター名が変えられるのはMicrosoft Entra参加しているデバイスだけです。

【基礎】デバイスの名前を変更する方法

Intuneに登録されたデバイスはコンピューター名を変更できます。
Intune管理センターの[デバイス] – [すべてのデバイス]から特定のデバイスを選択して行います。

image

ただ、このやり方だと複数のデバイスの変更は大変なので、もっと簡単にできる方法を見ていきます。

Microsoft Graph経由でデバイス名変更

Intune管理センターからできることのほとんどは、Microsoft Graphを利用してAPI経由で操作することが可能です。APIアクセスの方法は色々ありますが、ここではPowerShell経由での方法を紹介します。PowerShellからIntuneを操作する方法についてはこちらに詳しく書きましたのでよろしければどうぞ。

これを利用してPowerShellからIntuneに接続し、名前を変更したいデバイスのデバイスIDを最初に調べます。多くの場合、デバイスのシリアル番号がすでに分かっている場合が多いので、こんな感じで確認すると良いでしょう。

Connect-MSGraph
$Serial = "シリアル番号"
$ID=(Get-IntuneManagedDevice -Filter "SerialNumber eq '$Serial'").id

ここまでの操作により、$ID変数に特定のシリアル番号を持つデバイスのデバイスIDがセットされました。
続けてデバイス名を変更します。Update-IntuneManagedDeviceコマンドレットから変更することはできなかったので、今回はInvoke-MSGraphRequestコマンドレットから変更します。Invoke-MSGraphRequestコマンドレットからデバイス名を設定する場合、値をJSONフォーマットで流し込む必要があるため、先にデバイス名を指定したデータを$JSON変数にセットします。

$JSON = @"
{
deviceName:"新しいデバイス名"
}
"@

デバイス名の指定ができたら、いよいよコマンドレットを実行しましょう。

$Resource = "deviceManagement/managedDevices('" + $ID + "')/setDeviceName"
$URI = "https://graph.microsoft.com/beta/$($Resource)"
Invoke-MSGraphRequest -HttpMethod POST -Url $URI -Content $JSON

これによりデバイスの名前が自動的に変わります。

CSVファイルから読み込んで実行

ではここまでで行ったことをCSVファイルから一括で設定してみましょう。
CSVファイルはこんな感じで用意しました。

image

これを読み込んで先ほどのコマンドレットを実行するように書いてみました。

Connect-MSGraph
$CSV="c:\temp\devicename.csv"

$devices = Import-Csv $CSV
Foreach ($device in $devices){
$Serial = $device.serial
$ID=(Get-IntuneManagedDevice -Filter "SerialNumber eq '$Serial'").id

$JSON = @"
{
deviceName:"$device.name"
}
"@$Resource = "deviceManagement/managedDevices('" + $ID + "')/setDeviceName"
$URI = "https://graph.microsoft.com/beta/$($Resource)"
Invoke-MSGraphRequest -HttpMethod POST -Url $URI -Content $JSON

これで出来上がりです。
画面上でデバイス名が変わった様子を見たりすることができるわけではないので
わかりにくいとは思いますが、ぜひ試してみてください。