ユーザーの顔写真を管理者が一括でダウンロードすることは出来ますか?
この疑問に回答します。パワーシェルを利用すれば対応することができます。
一括でダウンロードしたいユーザーを抽出した 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
[email protected]
[email protected]
[email protected]
画像データの一括ダウンロード
コマンドレットを使用して顔写真の一括ダウンロードを行います。
[構文] 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】ユーザーの顔写真を管理者が一括でダウンロードする」という記事でした。
コメント