皆さんこんにちは!ナガイです。
今回は超初級編です。
Microsoft365の設定で、PowerShellはどれくらい使いこなせているでしょうか。
- コマンド覚えないといけないから敬遠している
- 管理センターで設定できるから特に使っていない
- 必要だとは思っているけど学習範囲が多くて、学習する気が進まない。
- PowerShellってそもそもなに? などなど。。。
こんな風に感じている方多いのではないでしょうか。
私もMicrosoft365のエンジニアをすることになって初めてPowerShellを学ぶことになったのですが、コマンドを使用するPowerShellを学習するのはとても億劫でした。
ものすごい膨大な量がありますし、学習する範囲はすごく広くなってしまいます。
ですが、Microsoft365を設定するうえで、ということに限定すれば必要な知識は限られています。
今日は、Microsoft365の管理者に、これだけは、絶対に押させておいてほしい、必須な、PowerShell知識をたった6つにまとめました。前半と後半の2投稿に分けて、30分くらいで、理解できるようにまとめていますので、Microsoft365エンジニアとしてこれから活動する方やPowerShellの学習を行いたい方はぜひご一読いただけますと幸いです。
ぶっちゃけた話
ぶっちゃけた話をしてしまいますが、Microsoft365で使うコマンドレット(PowerShellにおけるコマンドのこと)を読み書きするために必要な知識は、本当に、6つだけです。
その他の知識もあるに越したことはありませんが、使う機会はほとんどないといってもいいと思います。バッチを組んだり、ほかのことをさせたい場合は別ですが。
先に抑えるべきポイントを記載します。
- コマンドレットの構成
- データの位置を指定するパス
- 新規・更新で使うカタチ
- 変数の定義「$」
- コマンドレットとコマンドレットをつなぐ パイプ「|」
- 単数から複数に変換する「ForEach Object」
いまから、この6つについて解説していきます。
ポイント1:コマンドレットの構成
“コマンドレット”とは、PowerShellにおける実行するコマンド文のことを指します。この、コマンドレットを使って、Microsoft365の設定を変更していくことができます。
コマンドレットは次に記載する形が基本形になります。
“動詞-目的語(名詞)”
コマンドレットの冒頭は基本、この形から始まります。例を挙げると以下のようなものがあります。
- Import-CSV : CSVファイルをインポートする
- Export-CSV : CSVファイルをエクスポートする
- New-Mailbox : メールボックスを新しく作る
- Get-Mailbox : メールボックス情報を取得する
- Set-Mailbox : メールボックスの設定を更新する
- Set-Msoluser : M365ユーザーの情報を更新する
例に挙げたように、動詞で「何をするか」を記載し、目的語(名詞)で「何を(対象)」を決めます。まずは、何に対してどうするコマンドレットなのかを宣言するということですね。
ポイント1は以上です!
ポイント2:データの位置を指定するパス
特定のフォルダ(ディレクトリ)にあるデータを利用してPowerShellを使いたいときや特定のフォルダにデータを保存したいときがあります。そんなときに利用するのが、場所を指定する「パス」です。
[パスの表現]
“<ドライブ名>:\フォルダ名\フォルダ名\フォルダ名・・・”
これだけだとわかりにくいので、例を挙げてみましょう。
C:\Users\nagai.akasatana\Desktop
こんなパスがあったとします。
すると[Cドライブ]の中にある[Users]フォルダにある[nagai.akasatana]にある[Desktop]というフォルダを指すことになります。
グラフィカルにしてみると下のようになります。
(例)C:\Users\nagai.akasatana\Desktop

パスの内容は理解できましたか?
もし、PowerShellに取り込みたいファイルが決まった時、そのパスはどうやって見つければいいんだろう?と思いますよね。その時は、以下の手順をしていただければ見つかります。
1.対象のファイルを選択して右クリック。メニューから「プロパティ」を選択します。

2.プロパティウインドウが開いたら、「場所」にパスが記載されています。

補足:エクスプローラ上部からもパスを見ることはできます。ただし、「デスクトップ」や「ダウンロード」など一部の参照先では、日本語でしか出力されない場合があるので、もし日本語で表示されてしまった場合には、上の手順で確認してください。
エクスプローラの上部をクリックするとパスが表示されます。


ただし、特定のフォルダではパスが日本語で表示される場合も。

ご自身のパソコンでも見つけることができると思いますので、ぜひやってみてください。
ポイント3 : 新規・更新で使うカタチ
例えば、新しいユーザーを作るときに「ユーザー名」や「表示名」を指定する必要があります。また、いま登録されているユーザーの「ユーザー名」や「表示名」を変更することもあると思います。
この時に使うカタチがあります。
新規・更新で使うカタチ
“-<項目名>_入力値” ※「_」はスペースを意味します。
これだけだとよくわからないと思いますので、具体例を使って説明します。
新規ユーザーを作成するコマンドの場合
New-Mailbox -UserPrincipalName “nagai.akasata@co.jp” -DisplayName “ナガイ”
上のようなコマンドレットがあったとします。これをカタチだけを考えて分解すると次のようになります。
①[New-Mailbox] ②[-UserPrincipalName “nagai.akasa@co.jp”] ③[-DisplayName “ナガイ”]
①[動詞-目的語]
②[-<項目名>_入力値]
③[<項目名>_入力値]
①はポイント1で説明した基本形です。今回、Newですので「新規作成する」を意味するので、「Mailbox(メールボックス)を新規作成する」の意味になります。
②は、どのようなユーザー名にするかを示します。項目名は[UserPrincipalName(ユーザー名)]、入力値は[nagai.akasa@co.jp]となりますので、[nagai.akasa@co.jp]の値をユーザー名に持つアカウントを作成することを指します。
③は、②と同様に考えて、DisplayName(表示名)に[ナガイ]を指定しています。
New-Mailbox -UserPrincipalName “nagai.akasata@co.jp” -DisplayName “ナガイ”
→ユーザー名に”nagai.akasata@co.jp”、表示名に”ナガイ”となるユーザーを新規作成する。
すでに登録されているユーザーを更新するコマンド
次に、すでに存在するユーザーの情報を更新したいときのコマンドについて考えてみましょう。
更新の時には以下のようなコマンドレットを利用します。
Set-Mailbox -Identity “nagai.akasa@co.jp” -DisplayName “ナカイ”
これを先ほどと同じようにカタチだけを考えて分解すると次のようになります。
①[Set-Mailbox] ②[-Identity “nagai.akasa@co.jp”] ③[-DisplayName “ナカイ”]
①[動詞-目的語]
②[-<項目名>_入力値]
③[<項目名>_入力値]
①は新規作成の時と同じく、ポイント1で説明した基本形です。今回は、Newではなく、Setですので「更新する」を意味し、「Mailbox(メールボックス)を更新する」の意味になります。
②は、どのユーザー情報を更新するのか示します。新規作成する場合と異なるのは、すでに存在しているユーザーを更新するので、どのユーザーなのかを指定する必要があるということです。更新や追加のコマンドレットでは、基本形の後は、更新や追加をどの対象にするのかを明記するルールになっています。
今回の例文では、項目名は[Identity]、入力値は[nagai.akasa@co.jp]となりますので、[nagai.akasa@co.jp]の値をIdentityに持つアカウントを更新することを指します。
③は、どの情報を更新するのかを記載します。今回の例文では、項目[DisplayName(表示名)]を[ナカイ]に変更するとなります。
①②③を合わせると、「Identityの値に”nagai.akasa@co.jp”を持つアカウントのDisplayName(表示名)を”ナカイ”に更新する」となります。
Set-Mailbox -Identity “nagai.akasa@co.jp” -DisplayName “ナカイ”
→Identityの値に”nagai.akasa@co.jp”を持つアカウントのDisplayName(表示名)を”ナカイ”に更新する
以上で、ポイント3については終了です。
基本形の後に続く「-<項目名>_入力値」の形をしっかり覚えましょう。
前半パートは終了。後半へ続く。
さて、前半パートが終了しました。
コマンドレットの形に注目した内容と、パスについて学習しました。
ここに躓く方非常に多いので、しっかりと抑えたうえで後半パートに進みましょう。
お疲れ様でした!
後半パートは↓から。
Coming Soon…
コメント