Windows PowerShell を用いたサービスの一括設定について

テクニカル レベル : 中級

概要

いつもOffice 365 をご利用いただきありがとうございます。

 

Office 365 をお使いいただく上で、ユーザーによってはライセンスの中の一部のサービスを無効化して特定のサービスのみ利用させたいなど、利用するサービスの管理を行いたい場合があるかと思います。このような場合において、Windows PowerShell を利用することで複数のユーザー数に対して一括で設定することができます。

 

以下に、特定のサービスのみを有効化したライセンスを新規ユーザーに割り当てを行う場合と既存のユーザーに割り当てる場合の手順をそれぞれご案内いたします。

 

=== (目次) ====

【事前準備1 Windows PowerShell を起動する

【事前準備2】 テナントのライセンス状況を確認する

【事前準備3】 ライセンスの中のサービスを確認する

【事前準備4】 有効化したいサービス以外のサービスを無効化したライセンス オプションを作成する

 

◆ 新規ユーザーへのライセンス割り当て手順

◆ 既存ユーザーへのライセンス割り当て手順

============


詳細

 

【事前準備1 Windows PowerShell を起動する

 

以下の手順で、Windows PowerShell を起動します。

Office 365 PowerShell への接続に必要なソフトウエアをインストールしていない環境では、こちらの手順を参考に[Microsoft Online Services サインイン アシスタント] [Windows PowerShell Microsoft Azure Active Directory モジュール] をインストールしてください)

 

1. [Windows PowerShell Windows Azure Active Directory モジュール] を右クリックして[管理者として実行] で起動します。

2. 接続のために以下のコマンドレットを実行し、管理者ユーザーのID とパスワードを入力します。

 

【コマンドレット】

Connect-MsolService

 

【事前準備2】 テナントのライセンス状況を確認する

 

以下の手順にて、以降のコマンドレットの実行に使用する[AccountSkuId][SkuPartNumber]、を確認します。

 

【コマンドレット】

Get-MsolAccountSku | Select-Object AccountSkuId,SkuPartNumber

 

【出力例】

AccountSkuId                       SkuPartNumber

------------                       -------------

*****:ENTERPRISEPACK               ENTERPRISEPACK

*****:STANDARDPACK                 STANDARDPACK

*****:O365_BUSINESS                O365_BUSINESS

*****:O365_BUSINESS_PREMIUM        O365_BUSINESS_PREMIUM

*****:STANDARDWOFFPACK_FACULTY     STANDARDWOFFPACK_FACULTY

*****:STANDARDWOFFPACK_STUDENT     STANDARDWOFFPACK_STUDENT

 

SkuPartNumber に対応する主なライセンス】

STANDARDPACK                       Office 365 Enterprise E1

ENTERPRISEPACK                     Office 365 Enterprise E3

ENTERPRISEPREMIUM                  Office 365 Enterprise E5

O365_BUSINESS                      Office 365 Business

O365_BUSINESS_PREMIUM              Office 365 Business Premium

STANDARDWOFFPACK_FACULTY           Office 365 Education 教職員用

STANDARDWOFFPACK_STUDENT           Office 365 Education 児童/学生用

 

AccountSkuId SkuPartNumber は予告なく変更される可能性があります、ライセンスの割り当てを実行する場合は必ず事前に上記コマンドにてご確認ください。

 

【事前準備3】 ライセンスの中のサービスを確認する

 

以下のコマンドレットを実行し、ライセンスの中に含まれる各サービスを確認します。

 

【コマンドレット】

Get-MsolAccountSku | Where-Object {$_.SkuPartNumber -eq "SkuPartNumber の値>"} | ForEach-Object {$_.ServiceStatus} | ForEach-Object {$_.Serviceplan} | Select-Object ServiceName

 

【実行例】(Office 365 Enterprise E3 に含まれるサービスを確認する場合)

Get-MsolAccountSku | Where-Object {$_.SkuPartNumber -eq "ENTERPRISEPACK"} | ForEach-Object {$_.ServiceStatus} | ForEach-Object  {$_.Serviceplan} | Select-Object ServiceName

 

【実行結果例】

ServiceName                 ServiceName Admin center 上の名称

-----------                 ---------------

Deskless                  - Microsoft StaffHub

FLOW_O365_P2              - Office 365 向けフロー

POWERAPPS_O365_P2         - Office 365 向け PowerApps

TEAMS1                    - Microsoft Teams

PROJECTWORKMANAGEMENT     - Microsoft Planner

SWAY                      - Sway

INTUNE_O365               - Mobile Device Management for Office 365

YAMMER_ENTERPRISE         - Yammer Enterprise

RMS_S_ENTERPRISE          - Azure Rights Management

OFFICESUBSCRIPTION        - Office 365 ProPlus

MCOSTANDARD               - Skype for Business Online (プラン 2)

SHAREPOINTWAC             - Office Online

SHAREPOINTENTERPRISE      - SharePoint Online (プラン 2)

EXCHANGE_S_ENTERPRISE     - Exchange Online (プラン 2)

 

※ サービスの拡充や変更に伴い、上記の[AccountSkuId][SkuPartNumber][ServiceName] の値は変更される場合がありますので、ライセンスの割り当てを実行する場合は必ず事前にご確認ください。

※ ご契約のプランによって、出力される[ServiceName] の値が上記の出力例と異なる場合があります。

 

【事前準備4】 利用したいサービス以外のサービスを無効化したライセンス オプションを作成する

 

以下のコマンドレットを実行し、利用したいサービス以外の一部のサービスを無効化したライセンス オプションを作成します。

 

【コマンドレット】

$<任意のライセンス オプション名> = New-MsolLicenseOptions -AccountSkuId <事前準備 2 で確認した AccountSkuId の値> -DisabledPlans <無効にするサービスの ServiceName

 

【実行例】

$My365Sku = New-MsolLicenseOptions -AccountSkuId *****:ENTERPRISEPACK -DisabledPlans FLOW_O365_P2,POWERAPPS_O365_P2,SWAY,TEAMS1

 

【説明】

上記実行例ではOffice 365 Enterprise E3 から、[Office 365 向けフロー][Office 365 向け PowerApps][Sway][Microsoft Teams]、の 4 つのサービスを無効にしています。

 

作成したライセンス オプションをユーザーに適用することで、現在のライセンスの内容から作成したライセンス オプションの内容に変更する動作となります。

上記コマンドレットは、ライセンス オプションを変数 [$My365Sku] として一時的に保存するものとなり、PowerShell ウィンドウを閉じると、作成した情報はクリアされますのでご注意ください。

 

事前準備として上記の手順により、利用したいサービス以外のサービスを無効化したライセンス オプションの作成ができましたら、次に作成したライセンス オプションをユーザーに割り当てることとなります。

まずは新規ユーザーへのライセンス割り当てについてご案内いたします。

 

◆ 新規ユーザーへのライセンス割り当て手順

 

新規に作成するユーザー情報を記載したCSV ファイルを作成します。

作成するファイルは、メモ帳、もしくはExcel にて作成し、表示名などに日本語を使用した場合は、文字化け防止のため、ファイルを保存する際に、文字コードをUTF-8 に指定します。

なお、Excel  ファイルにて作成する場合は、[, (カンマ)] を入れて頂く必要はありません。

文字コードをUTF-8  に変更する手順については、本項最後の【文字コードの変更】をご確認ください。

Excel にて編集された場合は、保存する際の形式を [CSV  (カンマ区切り)] に設定してください。

※エラー発生時のリスク回避の為、1 つのCSV ファイルに最大で1,000 アカウント前後とすることを推奨いたします。

 

CSV ファイルの作成例】

UserPrincipalName,DisplayName,FirstName,LastName,Password,<その他属性>

user1@*****.com,User01,User,01,Pass1234,…

user2@*****.com,User02,User,02,Pass1234,…

 

Office 365 のパスワード要件】

Office 365 の既定のパスワードは、一定のパスワード強度を満たしたものを設定する必要があります。一定の強度 (要件) を満たしていない場合にはパスワード設定は完了しません。

 

<パスワードの設定要件例>

- 8 文字以上16 文字以下の文字数である必要があります。

- 簡単に推測されたり、解読されない強力なパスワードを作成します。英字の大文字、小文字、数字、記号のうち、最低でも3 つの種類を含める必要があります。

 

詳細は以下の公開情報もご参照ください。

 

Title: Azure Active Directory のパスワード ポリシーと制限

URL: https://docs.microsoft.com/ja-jp/azure/active-directory/active-directory-passwords-policy

[クラウド ユーザー アカウントにのみ適用されるパスワード ポリシー] 項をご参照ください)

 

【文字コードの変更】

1. 作成したCSV ファイルを右クリックし、[プログラムから開く (H)] - [メモ帳] の順にクリックします。

2. 開いたメモ帳で [ファイル (F)] - [名前を付けて保存 (A)] の順にクリックします。

3. ファイルの種類で [すべてのファイル] を選択します。

4. [ファイル名 (N)] にて、ファイル名の後ろに拡張子 (.csv) を入力します。

5. 文字コードで [UTF-8] を選択します。

6. [保存 (S)] をクリックします。

 

【その他属性一覧】

他に設定したい項目がある場合には、以下よりCSV ファイルおよび [Windows PowerShell] コマンドレットの <その他属性> に追記してください。

 

ユーザー名  : UserPrincipalName

          : FirstName

          : LastName

表示名      : DisplayName

役職        : Title

部署        : Department

事業所      : Office

事業所の電話: PhoneNumber

携帯電話    : MobilePhone

FAX 番号    : Fax

番地        : StreetAddress

市区町村    : City

都道府県    : State

郵便番号    : PostalCode

/地域     : Country

 

CSV ファイルの作成が完了しましたら、以下のコマンドレットを実行し新規にユーザーを作成し、同時にライセンス オプションを割り当てます。

 

【コマンドレット】

Import-Csv "<作成したCSV ファイルのパス>" | ForEach-Object {New-MsolUser -UserPrincipalName $_.UserPrincipalName -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -Password $_.Password -<その他属性>$_.<その他属性> -LicenseAssignment <付与するライセンスのAccountSkuId -LicenseOptions <ライセンス オプション名> -UsageLocation JP -ForceChangePassword $False}

 

【実行例】 ※実行例はE3 のライセンス オプションを付与するコマンドレットです。

Import-Csv "C:\Temp\User.csv" | ForEach-Object {New-MsolUser -UserPrincipalName $_.UserPrincipalName -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -Password $_.Password -LicenseAssignment *****:ENTERPRISEPACK -LicenseOptions $MY365Sku -UsageLocation JP -ForceChangePassword $False}

 

【説明】

上記実行例はCSV ファイル名が [User.csv]、格納先フォルダーがC ドライブ直下の [Temp] フォルダーに保存してある場合の例となります。

ForceChangePassword は、最初のサインインを行っていただく際のパスワードの種類を設定します。

ForceChangePassword $True で、[一時パスワード] として登録されます。

ForceChangePassword $False で、[本パスワード] として登録されます。※ユーザーが初回サインイン時にパスワード変更を求められない設定です。

 

【実行結果例】

Password       UserPrincipalName         DisplayName       isLicensed

--------          -----------------      -----------       ----------

Pass1234           user1@*****.com          User01            True

Pass1234           user2@*****.com          User02            True

 

 

上記で新規ユーザーへの割り当ては完了です。

つづきまして、以下に既存のユーザーへライセンス オプションを割り当てる場合の手順をご案内いたします。

 

◆ 既存ユーザーへのライセンス割り当て手順

 

既存ユーザーの情報をCSV ファイルに出力し、ライセンス オプションの割り当てに利用します。

以下に、ライセンスの割り当てがあるユーザーを出力する場合と、ライセンスの割り当てがないユーザーを出力する場合それぞれご案内いたします。

 

<ライセンスの割り当てがあるユーザーを出力する場合>

 

【コマンドレット】

Get-MsolUser -All | ForEach-Object {$upn=$_.UserPrincipalName;$_.Licenses | ForEach-Object {if($_.AccountSkuId -eq "AccountSkuId の値>"){$upn}}} | Out-File <ファイル名を含んだ保存先のパス> -Encoding UTF8

 

【実行例】

Get-MsolUser -All | ForEach-Object {$upn=$_.UserPrincipalName;$_.Licenses | ForEach-Object {if($_.AccountSkuId -eq "*****:ENTERPRISEPACK"){$upn}}} | Out-File "C:\Temp\Userlist.csv" -Encoding UTF8

 

【説明】

上記実行例では、C ドライブ直下の [Temp] フォルダーに [Userlist.csv] ファイルが出力されます。

 

<ライセンスの割り当てがないユーザーを出力する場合>

 

【コマンドレット】

Get-MsolUser -UnlicensedUsersOnly -All | Select-Object UserPrincipalName | Export-Csv -Encoding UTF8 -NoTypeInformation <ファイル名を含んだ保存先のパス>

 

【実行例】

Get-MsolUser -UnlicensedUsersOnly -All | Select-Object UserPrincipalName | Export-Csv -Encoding UTF8 -NoTypeInformation "C:\Temp\UnlicensedUser.csv"

 

【説明】

上記実行例では、C ドライブ直下の [Temp] フォルダーに [UnlicensedUser.csv] ファイルが出力されます。

 

上記いずれかの手順により、ユーザー情報を出力いただきましたらライセンス オプションを割り当てるユーザー情報だけが記載された以下のような状態にファイルを編集し保存します。

 

CSV ファイルの作成例】

UserPrincipalName

user1@*****.com

user2@*****.com

 

続いて、ライセンス オプションを割り当てるユーザー情報が記載されたCSV ファイルを利用して、以下のコマンドレットを実行しライセンス オプションを割り当てます。

ここでも既存ユーザーにライセンスの割り当てがある場合と、ライセンスの割り当てがない場合それぞれのコマンドレットをご案内いたします。

 

<ライセンスの割り当てがある場合>

【コマンドレット】

Import-CSV "<ファイル名を含んだ保存先のパス>" | ForEach-Object { Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -LicenseOptions $<作成したライセンス オプション名> }

 

【実行例】

Import-CSV "C:\Temp\Userlist.csv" | ForEach-Object { Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -LicenseOptions $MY365Sku }

 

【説明】

上記実行例では、C ドライブ直下の [Temp] フォルダーにある [Userlist.csv] のファイルを利用して、ライセンス オプション [$MY365Sku] を割り当てています。

 

<ライセンスの割り当てがない場合>

ライセンスの割り当てがない場合は、事前に以下のコマンドレットで[所在地] を設定します。

 

【コマンドレット】

Import-CSV <作成した CSV ファイル名を含んだ保存先のパス> | ForEach-Object { Set-MsolUser -UserPrincipalName $_.UserPrincipalName -UsageLocation <国コード> }

 

【実行例】

Import-CSV C:\Temp\Userlist.csv | ForEach-Object { Set-MsolUser -UserPrincipalName $_.UserPrincipalName -UsageLocation JP }

 

【説明】

上記実行例では、C ドライブ直下の [Temp] フォルダーにある [Userlist.csv] のファイルを利用して、[所在地] を日本に設定しています。

 

続いて、ライセンスの割り当てがないユーザーに対して、ライセンス オプションを割り当てます。

 

【コマンドレット】

Import-CSV "作成した CSV ファイル名を含んだ保存先のパス" | ForEach-Object { Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -AddLicenses "AccountSkuId の値>" -LicenseOptions $<作成したライセンス オプション名> }

 

【実行例】

Import-CSV "C:\temp\Userlist.csv" | ForEach-Object { Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -AddLicenses *****:ENTERPRISEPACK -LicenseOptions $MY365Sku }

 

【説明】

上記実行例では、C ドライブ直下の [Temp] フォルダーにある [Userlist.csv] のファイルを利用して、E3 のライセンス オプション [$MY365Sku] を割り当てています。

 

ご案内は以上となります。引き続きOffice 365 をどうぞよろしくお願いいたします。

 

Online Services Support Team_Microsoft

本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。

 

この記事は役に立ちましたか?

お役に立てず、申し訳ございません。

素晴らしい! フィードバックをありがとうございました。

この記事にどの程度満足していますか?

フィードバックをありがとうございました。おかげで、サイトの改善に役立ちます。

この記事にどの程度満足していますか?

フィードバックをありがとうございました。

 

フォラムの記事の情報


最終更新日: 2021年12月23日 表示数 15,287 適用先: