【Office365】ユーザーの顔写真を管理者が一括でダウンロードする

ユーザーの顔写真を管理者が一括でダウンロードすることは出来ますか?
この疑問に回答します。パワーシェルを利用すれば対応することができます。
一括でダウンロードしたいユーザーを抽出した CSV ファイルを作成し、Get-UserPhoto コマンドレットにて写真のダウンロードが可能です。その手順をご紹介します。
Offcie365で利用している顔写真を他のアプリに流用する際には便利です。
  • Exchange Online への接続
  • CSV ファイルの作成
  • 画像データの一括ダウンロード

Exchange Online への接続

事前に以下の URL を参照し Windows PowerShell を Exchange Online に接続します。

関連記事

Office365へのPowerShell接続手順
PowerShellのセットアップ モジュールのインストール モジュールをインストールします PowerShellの設定 PowerShell接続ポリシーを RemoteSigned に設定する。 # ...

CSV ファイルの作成

ユーザー一覧の作成

次のコマンドレットを実行し、全ユーザーのユーザー プリンシパル ネーム (UPN) 一覧を出力し、画像のダウンロードを行うユーザー一覧を作成します。

[構文]
Get-Mailbox -RecipientType UserMailbox -ResultSize Unlimited | Select UserPrincipalName | Export-Csv -NoTypeInformation -Encoding UTF8 -Path <ファイル名を含んだ保存先のパス>

[実行例]
Get-Mailbox -RecipientType UserMailbox -ResultSize Unlimited | Select UserPrincipalName | Export-Csv -NoTypeInformation -Encoding UTF8 -Path C:\Temp\UserPhoto.csv

 CSV ファイルの編集

取得した CSV ファイルを、顔写真をダウンロードしたいユーザーのみに以下の形式で編集します。

※ このファイルを保存する際、保存する文字コードによって文字化けが発生する可能性がありますので、文字コードは UTF-8 に指定します。
※ 写真のサイズ・対象ユーザー数によっては帯域に負荷がかかる可能性があるのでで、対象ユーザー数が多い場合など、CSV ファイルは必要に応じて分割して作成してください。

<CSV ファイルの作成例>
UserPrincipalName
User01@contoso.com
User02@contoso.com
User03@contoso.com

画像データの一括ダウンロード

コマンドレットを使用して顔写真の一括ダウンロードを行います。

事前に画像データの保存先フォルダーを作成してから、コマンドレットを実行してください。
[構文]
Import-CSV -Path "<ファイル名を含んだ保存先のパス>" | ForEach {$user = Get-UserPhoto -identity $_.UserPrincipalName ; $user.PictureData | Set-Content "<ダウンロード先 のパス>\Photo$($user.Identity).jpg" -Encoding byte}

[実行例]
Import-CSV "C:\temp\Userphoto.csv" | ForEach {$user = Get-UserPhoto -identity $_.UserPrincipalName ; $user.PictureData | Set-Content "C:\temp\export\Photo\$($user.Identity).jpg" -Encoding byte}

※ この実行例では、画像データのファイルは C:\temp\export\Photo フォルダー配下に <ユーザー名>.jpg という形式で保存されます。

※ ダウンロード先のフォルダーが存在しない場合や顔写真が設定されていない場合はエラーとなります。

 

以上、「【Office365】ユーザーの顔写真を管理者が一括でダウンロードする」という記事でした。

コメント