Azure Active Directory に join したデバイスの名前を変更する方法【PowerShell + AzureAD module】

自分用メモ。

Azure Active Directory を使ってPCをセットアップすると、デバイス名がランダム生成された名前(DESKTOP-なんちゃら)になるが、これを変更しようとしてもAzure Portalでは変更できない(なんでだ)。でもPowerShell + AzureAD moduleを使って、コマンド実行するとできるよ。

Azure Active Directory に join したデバイスの名前を変更する手順

まず、管理者としてPowerShellを実行する。

NuGetとか入ってないと入れろって言われるので入れる。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\WINDOWS\system32> Install-Module -Name AzureAD

続行するには NuGet プロバイダーが必要です
PowerShellGet で NuGet ベースのリポジトリを操作するには、'2.8.5.201' 以降のバージョンの NuGet
プロバイダーが必要です。NuGet プロバイダーは 'C:\Program Files\PackageManagement\ProviderAssemblies' または
'C:\Users\川野真祐\AppData\Local\PackageManagement\ProviderAssemblies'
に配置する必要があります。'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' を実行して NuGet
プロバイダーをインストールすることもできます。今すぐ PowerShellGet で NuGet
プロバイダーをインストールしてインポートしますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"):

信頼されていないリポジトリ
信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSReposit
ory コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery'
からモジュールをインストールしますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): y
PS C:\WINDOWS\system32>

モジュールが入ったら、クレデンシャルを取得→AzureADに接続→コマンドを実行、という流れになる。

PS C:\WINDOWS\system32> $credential = Get-credential

コマンド パイプライン位置 1 のコマンドレット Get-Credential
次のパラメーターに値を指定してください:
Credential

クレデンシャルを取得しようとすると認証要求されるので、Azure AD管理者のアカウントでサインインする。

接続する。

PS C:\WINDOWS\system32> Connect-AzureAD -Credential $credential

Account            Environment TenantId                             TenantDomain   AccountType
-------            ----------- --------                             ------------   -----------
kno@example.com    AzureCloud  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx example.com    User

デバイスのObjectIdを取得する。

PS C:\WINDOWS\system32> Get-AzureADDevice

ObjectId                             DeviceId                             DisplayName
--------                             --------                             -----------
999x9999-xxxx-9999-x999-9x99999x99x9 x99xx999-x999-999x-xx99-9x99xx9x999x xxx-D99999999

ObjectIdを指定しつつ変更後の名前(display name)を入力して、変更する。

PS C:\WINDOWS\system32> Set-AzureADDevice -objectID <objectID of device> -displayname <new display name>

これで変更完了。即時反映されるようなので、 Get-AzureADDevice で見たり、Azure PortalでRefreshしたりすると変更されているのが確認できる。

参考

あとがき

なんか、こんなことしなくてもいいような気もするんだけど、なんとかならんのか。