中小企業情シス稼業

2社連続で中小企業ひとり情シスやっています。 同じ境遇の方のお役に立てればと思います。

広告

2022年02月

Microsoft365を設定するPowerShellコマンドをExcelで生成する-表示名変更

car-99-takes-the-lead-in-a-blur-of-speed

Microsoft365の運用を効率化するPowerShellコマンドをExcelで生成するシリーズです。

今回はMicrosoft365アカウント表示名の変更です。
GUIから大量にやるのは萎えます・・・

アカウント登録については以下をどうぞ。

関連記事:

※PowerShellを実行する際は、まずは少ない件数で様子を見てください。
※PowerShellの実行により、不具合が起きても、当方は一切責任を負いません。自己責任でお願いします。

Excelの準備

以下のようなパラメータシートを作ります。
screenshot_01

外部ユーザの場合は、「#EXT#@【ドメイン名】」をメールアドレスの後ろにつける必要があるので、それにも対応できるようにしておきます。


上記のパラメータを参照するセルに、以下の式を入力します。

="Set-MsolUser -UserPrincipalName " & A2 & C2 & " -DisplayName """ & B2 & """"


上記はMicrosoft365の表示名を変更するコマンドを生成しています。
式を入力すると、見た目は以下のようになります。
screenshot_02

※上記の設定内容は一例です。ご自身の環境に合わせて取捨選択し、各コマンドのパラメータも変更してください。

PowerShellコマンド実行

PowerShellを管理者権限で実行します。

※必要に応じ、事前にいろいろインストールしておいてください。初回だけでOKです。
・Microsoft OnlineService
Install-Module MSOnline
または、
Import-Module MSOnline –UseWindowsPowerShell  (PowerShell7の場合)
・Azure AD
Install-Module -Name AzureAD
・Exchange
Install-Module -Name ExchangeOnlineManagement
・SharePoint
Install-Module -Name Microsoft.Online.SharePoint.PowerShell
・Teams
Install-Module -Name MicrosoftTeams -Force


ここからが本題の作業です

0.
PowerShell7の場合、何故か毎回
Import-Module MSOnline –UseWindowsPowerShell
が必要です。この辺りあまりわかっていません・・・すみません。

1.
以下のコマンドを実行し、Microsoft365に接続します。
Connect-MsolService

2.
先ほど準備したExcelのPowerShellコマンドのセルをコピー(Ctrl+c)します。
複数セル選択しても大丈夫です。これにより一括登録が可能になります。
※あまり数が多いとエラーになる可能性があります。ご注意ください。
screenshot_03

3.
PowerShellのウインドウで貼り付け(Ctrl+v)します。
screenshot_04

4.
Enterキーを押すと、コマンドが実行されます。
※処理に時間がかかることがあります。プロンプトが表示され、カーソルが点滅するまで気長に待ちます。

5.
PowerShellのウインドウを閉じます。
※1で接続した、MsolServiceは切断不要です。



Microsoft365を設定するPowerShellコマンドをExcelで生成する-アカウント登録

single-speed-boat-on-water

Microsoft365の運用、GUIでポチポチやるのはかったるいです。なるべく自動化したい。

そんなときに便利なのはPowerShellです。でも私はコマンドを覚えられません・・・

なので私はExcelでやってます。
パラメータを入力すると、PowerShellコマンドを生成するシートを作っています。

「CSVでやればいいじゃないか」
でもCSVは、Excelで開くと先頭の0が落ちたりします。それを気にするのが面倒くさいのです。

中小企業では、一度に何百件もの登録はありません。数件レベルです。
でも手でやるのは面倒くさい。

お手軽にやりたい方にお勧めです。

※PowerShellを実行する際は、まずは少ない件数で様子を見てください。
※PowerShellの実行により、不具合が起きても、当方は一切責任を負いません。自己責任でお願いします。

Excelの準備

以下のようなパラメータシートを作ります。
Excelパラメータ

ライセンスはPowerShellを管理者権限で起動、以下のコマンドを実行し、
Connect-MsolService
Get-MsolAccountSku
該当するAccountSkuIdを入力してください。
※エラーが出る場合は、先に
Install-Module MSOnline
を実行してください。


上記のパラメータを参照するセルに、以下の式を入力します。

="New-MsolUser -DisplayName """ & A2 & """ -FirstName " &C2 & " -LastName " & B2 & " -UserPrincipalName " & D2 & " -UsageLocation JP -LicenseAssignment " & F2 & " -Password " & E2 & " -ForceChangePassword $false"

上記はMicrosoft365にアカウント登録をするコマンドを生成しています。
式を入力すると、見た目は以下のようになります。
Excel外観

同様に以下の式を入力したセルを追加します。

・配布リストへの追加(「●●●●●」を実際の配布リストのメールアドレスに置き換えてください)
="Add-DistributionGroupMember -Identity ""●●●●●"" -Member """ & $D2 & """"

・デフォルトのメール送信形式をプレーンテキストにする
="Set-MailboxMessageConfiguration -Identity """ & $D2 & """ -DefaultFormat PlainText"

・予定表のアクセス権を変更(タイムゾーンが日本以外の場合、下記「予定表」の部分が「Calendar」でないとエラーになることがあります。)
="Set-MailboxFolderPermission -Identity """ & $D2 & ":\予定表"" -User ""Default"" -AccessRights Reviewer"

※上記の設定内容は一例です。ご自身の環境に合わせて取捨選択し、各コマンドのパラメータも変更してください。

PowerShellコマンド実行

PowerShellを管理者権限で実行します。

※必要に応じ、事前にいろいろインストールしておいてください。初回だけでOKです。
・Microsoft OnlineService
Install-Module MSOnline
または、
Import-Module MSOnline –UseWindowsPowerShell  (PowerShell7の場合)
・Azure AD
Install-Module -Name AzureAD
・Exchange
Install-Module -Name ExchangeOnlineManagement
・SharePoint
Install-Module -Name Microsoft.Online.SharePoint.PowerShell
・Teams
Install-Module -Name MicrosoftTeams -Force


ここからが本題の作業です

0.
PowerShell7の場合、何故か毎回
Import-Module MSOnline –UseWindowsPowerShell
が必要です。この辺りあまりわかっていません・・・すみません。

1.
以下のコマンドを実行し、Microsoft365に接続します。
Connect-MsolService

2.
以下のコマンドを実行し、Exchange Onlineに接続します。
Connect-ExchangeOnline

3.
先ほど準備したExcelのPowerShellコマンドのセルをコピー(Ctrl+c)します。
複数セル選択しても大丈夫です。これにより一括登録が可能になります。
※あまり数が多いとエラーになる可能性があります。ご注意ください。
PowerShell実行1

4.
PowerShellのウインドウで貼り付け(Ctrl+v)します。
PowerShell実行2

5.
Enterキーを押すと、コマンドが実行されます。
※処理に時間がかかることがあります。プロンプトが表示され、カーソルが点滅するまで気長に待ちます。

6.
他のコマンドも同様(セルのコピー→貼り付け→Enter)に実行します。
※上記「アカウント登録」には多少時間がかかります。後のコマンドをすぐ実行するとエラーが出ます。その場合は少し待ってから再度実行します。
※上記「予定表のアクセス権を変更」のコマンドを実行する場合は、実行前に作成したユーザでサインインし、Outlookを一度起動する必要があります。このプロセスも自動化したいのですが、やり方がわかりません。情報いただけるとありがたいです。

7.
PowerShellのウインドウで以下のコマンドを実行し、Exchange Onlineを切断します。
Disconnect-ExchangeOnline
※1で接続した、MsolServiceは切断不要です。



「こんなのダサい」などあるかと思いますが、ラクできればなんでもいいです。


広告
広告
プロフィール
40過ぎて何とか結婚し、2015年末に子どもができた、左利き初老オヤジです。日本史を再勉強中。株、囲碁、鼻炎、眼振少々。中小企業ハッタリテキトー情シス(社内SE)。Access/ExcelVBAしか武器(?)はなし。情試はPM/SM/SA/NW。 ベンダーSEを数年やり、その後情シスに転職しました。 情シスでは中小企業ばかり3社見てきました。現職と前職ではひとり情シスです。 会社では「いないとヤバいが、評価はしない」という扱いです。 ノウハウを伝える相手もいないので、せっかくなので自分なりのコツを公開したいと思います。 同じような環境で苦労されている方のお役に立てればと思います。 「情シスの格を上げる」が目標です。 Twitterをフォローいただくと、ブログ更新時に通知されます。http://twitter.com/suiton_everyday よろしくお願いいたします。
お問い合わせ
お問い合わせはこちら
プライバシーポリシー
・当サイトに掲載されている広告について
当サイトでは、第三者配信の広告サービス(Googleアドセンス)を利用しています。
このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、当サイトや他サイトへのアクセスに関する情報 『Cookie』(氏名、住所、メール アドレス、電話番号は含まれません) を使用することがあります。
またGoogleアドセンスに関して、このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、こちらをクリックしてください。

・当サイトが使用しているアクセス解析ツールについて
当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。
このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。
このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。
この規約に関して、詳しくはこちら、またはこちらをクリックしてください。