
PowerShellを使用してOffice365を管理すると、作業がより速く、より効率的に、より簡単になります。PowerShellを使用すると、Microsoft365管理センターからはアクセスできないOffice365環境に関する情報にアクセスでき、1つのコマンドで一括操作を実行できます。PowerShellは、Office 365製品を単一のインターフェイスに統合することで、ユーザーアクセス制御を簡素化し、サイバーセキュリティを強化します。
この記事では、sysadminにとって最も便利なOffice 365 PowerShellコマンドについて説明します。これらのコマンドは、自動化、レポート、構成の3つのカテゴリに分類されているため、必要なものをすばやく見つけることができます。
PowerShellがOffice365の操作にどのように役立つか

Microsoft 365管理センターは、カジュアルユーザーに最適です。このシステムを使用すると、Office 365のユーザーアカウントとライセンス、およびExchange Online、Teams、SharePointOnlineなどのサービスを管理できます。PowerShellを使用して、これらすべてのコンポーネントを管理することもできます。その使用により、自動化が大幅に簡素化され、作業がより効率的になります。
特に、PowerShellを使用したOffice365の管理を容易にするいくつかの重要な要素があります 。
- PowerShell for Office 365には、Microsoft365管理センターには表示されない追加情報が表示されます。
- PowerShell , Office 365;
- Office 365 , PowerShell Office 365 ;
- ;
- PowerShell Office 365 , Office 365. ;
- Office 365 CSV-;
- PowerShell .
これらの機能はすべて、システム管理者にとって非常に便利です。ただし、PowerShellはOffice 365の管理を強化するのに役立ち、Microsoft 365管理センターに代わるものではないことに注意してください 。一部のタスクは管理センターを介してより効率的になり、逆に、一部の構成手順はPowerShellコマンドを使用してのみ実行できます。
PowerShellの基本をマスターすると、システムはほぼ無制限に拡張できます。システム管理を簡素化および高速化できるPowerShellツールは数十あり 、コマンドラインを使用すると、スクリプトを実行して、頻繁で時間のかかるタスクを自動化できます。
最後に、PowerShellのすべてのニーズに対応するPowerShell統合スクリプト環境(ISE)を試して ください。この環境により、PowerShellスクリプトの作成が容易になるだけでなく、コマンドラインインターフェイスとの対話も改善されます。
Office365自動化用のPowerShellコマンド

数十のユーザーアカウントを手動で処理する代わりに、PowerShellを使用して、Office 365ユーザーに関する情報をすばやく収集、フィルタリング、および整理できます。次に、同じコマンドラインインターフェイスを使用して、目的のアカウントで一括アクションを実行できます。 Office365自動化に
最も役立つPowerShellコマンド は次のとおりです。
1.PowerShellを使用してOffice365アプリに接続します
PowerShell for Office 365の使用を開始する前に、Office 365 Module for Windows PowerShellをダウンロードしてインストールし、 Office365インスタンスに接続する必要があります。
その方法は次のとおりです。
- ITプロフェッショナル向けMicrosoftオンラインサービスサインインアシスタント、RTWをダウンロードしてインストールします。
- 次のPowerShellコマンドを使用して、Microsoft Azure ActiveDirectoryおよびOffice365用のPowerShellオンラインサービスモジュールをインポートします。
1. Install-Module -Name AzureAD 2. 3. Install-Module -Name MSOnline
- Office365管理者の資格情報を入力します。
$Cred = Get-Credential
次に、リモートユーザーとしてPowerShellセッションを作成する必要があります。これは、次のコマンドで実行できます。
$O365 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection
- 次に、セッションコマンドをローカルのWindowsPowerShellセッションにインポートします。
Import-PSSession $O365
- 最後に、次のコマンドを使用して、セッションをすべてのOffice365サービスに接続します。
Connect-MsolService –Credential $O365
これにより、Office365インスタンスのOffice365PowerShellに接続して管理します。
2.PowerShellを使用してExchangeOnlineおよびSharePointOnlineに接続します
Microsoft ExchangeOnlineおよびMicrosoftSharePoint Onlineに接続して、PowerShellを使用してこれらのサービスを管理できます。
- Exchange Onlineへの接続は、基本的にOffice365への接続と同じです。関連するコマンドは次のとおりです。
1. $Cred = Get-Credential 2. 3. $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic –AllowRedirection
- SharePoint Onlineへの接続はもう少し複雑であり、追加のソフトウェアをインストールする必要があります。
まず、SharePointOnline管理シェルコンポーネントをインストールします。
次に、PowerShellから次のコマンドを実行します。
1. $admin="Admin@enterprise.onmicrosoft.com" 2. 3. $orgname="enterprise" 4. 5. $userCred = Get-Credential -UserName $admin -Message " ." 6. 7. Connect-SPOService -Url https://$orgname-admin.sharepoint.com -Credential $userCred
3. Office365で使用可能なPowerShellコマンドレットのリスト
コマンドレットは、Office 365のPowerShellコマンドレットの主要なタイプであり、最もよく使用します。PowerShell for Office 365は、ほとんどのCLIと同様に、システムで使用可能なすべてのコマンドレットのリストを表示できます。
- MSOnlineで使用可能なすべてのコマンドレットを一覧表示するには、次のコマンドを実行します。
Get-Command -module MSOnline
- 同じコマンドを実行して、-module変数を置き換えるだけで、Azure ActiveDirectoryで使用可能なすべてのコマンドレットのリストを表示することもできます。
Get-Command -module AzureAD
4.すべてのOffice365ユーザーのリスト
PowerShellの最も一般的な使用法の1つは、すべてのOffice 365ユーザーのリストを取得することです。PowerShellでは、Get-msoluserという1つのコマンドレットでこれを実行できます 。
このコマンドレットは、有効なライセンスを持つすべてのOffice 365ユーザーを表示し、各ユーザーに関するいくつかの基本情報(DisplayName、City、Department、およびObjectIDパラメーター)を自動的に取得します。
- これを行うには、次のコマンドを実行します。
1. Get-MsolUser | Select DisplayName, City, Department, ObjectID
- 次に、同様のコマンドを実行して、アカウントの数を確認できます。
1. Get-MsolAccountSku
- また、利用可能なサービスのリストを取得するには、次のコマンドを実行します。
1. Get-MsolAccountSku | select -ExpandProperty ServiceStatus
- 標準のコマンドラインロジックを使用して、これらのコマンドを拡張して結果をフィルタリングできます。たとえば、次のコマンドを実行して、場所に基づいてすべてのユーザーをグループ化できます。
1. Get-MsolUser | Select DisplayName, UsageLocation | Sort UsageLocation, DisplayName
5.PowerShellを使用してOffice365で新しいユーザーを作成します
PowerShellを使用して、システムに新しいユーザーを作成するプロセスを自動化できます。これを行うには、使用して 新しい-MsolUserコマンドレットを:
ユーザ作成プロセスを自動化する適切な変数で、このコマンドレットを使用するには:
1. New-MsolUser -UserPrincipalName JSmith@enterprise.onmicrosoft.com -DisplayName "John Smith" -FirstName “John” -LastName “Smith”
このコマンドを実行すると、PowerShellは、一時的なパスワードやライセンスステータスなど、作成したユーザーに関する情報を表示します。
6.PowerShellを使用してOffice365のパスワードを変更します
システム管理者にとって最も一般的で最も厄介なタスクの1つは、ユーザーのパスワードを変更することです。理想的には、パスワードマネージャーを使用してこれを行い ますが、PowerShellを使用すると、個々のユーザーのパスワードを自動的に更新できます。
これを行うには、次のコマンドを実行します。
1. Set-MsolUserPassword -UserPrincipalName JSmith@netwrixqcspa.onmicrosoft.com -NewPassword P@SSw0rd!
-NewPasswordパラメーターを省略することもできます 。その場合、システムはランダムなパスワードを自動的に生成します。
1. Set-MsolUserPassword -UserPrincipalName JSmith@netwrixqcspa.onmicrosoft.com
レポート用のWindowsPowerShellコマンド

PowerShell for Office 365は、優れたレポートツールです。 PowerShellコマンドレットを使用すると、Office 365ユーザーに関する情報や、システムの使用方法に関する情報にすばやく簡単にアクセス、並べ替え、関連付けを行うことができます。
ほとんどのレポートコマンドレットは2018年1月に廃止されたことに注意してください 。 Microsoftは、これらのコマンドレットを新しいMicrosoft Graph ReportingAPIに置き換えました。これにより、Office 365でのPowerShellのレポート機能が低下しましたが、古い機能はすべてOffice 365 Security&ComplianceCenterから引き続き利用できます。
ただし、ユーザーとグループのレポートに関しては、PowerShell for Office365は依然として重要なツールです。以下は、PowerShellを使用できる最も有用なレポートの一部です。
1.ライセンスプラン
PowerShellには非常に便利なコマンドレットがあり、現在のライセンスプランと各プランで利用可能なライセンスの概要を確認できます。使用するには、次のようにします。
これを行うには、次のコマンドを実行します。
1. Get-MsolAccountSku
その結果、いくつかの重要な情報を含むレポートを受け取ります。
- AccountSkuld-組織で利用可能なライセンスプランを表示します。
- ActiveUnits特定のライセンスプランで購入したライセンスの数。
- WarningUnits30日の猶予期間の終了時に期限切れになるライセンスプラン内の更新されていないライセンスの数。
- ConsumedUnitsは、特定のライセンスプランからユーザーに割り当てたライセンスの数です。
追加の構文を使用して、ライセンスに関する詳細情報を取得したり、結果をフィルタリングして並べ替えたりすることもできます。これを行う方法の詳細については、レポート用のPowerShellの使用に関するMicrosoftのドキュメントを参照してください 。
2.ユーザーアカウント
レポートに役立つもう1つのコマンドレットは Get-MsolUserです。これは、すべてのOffice365ユーザーアカウントのリストを返します。このコマンドの使用方法は次のとおりです。
次のコマンドを実行します。
1. Get-MsolUser
名前が一致するユーザーアカウントの完全なリストが表示されます。表示されたアカウントをフィルタリングするためのいくつかのオプションを追加することもできます。たとえば、ライセンスのないユーザー(Office 365に追加されたが、サービスを使用するためのライセンスをまだ受け取っていないユーザー)のリストを取得するには、次のコマンドを実行します。
1. Get-MsolUser -UnlicensedUsersOnly
whereコマンドレットを使用して、特定のアカウントをさらに詳しく調べることができます 。
2つのコマンドレットを組み合わせるには、垂直バー「|」を使用します。これは、PowerShell for Office 365が最初のコマンドの結果を取得し、それらを次のコマンドに送信することを意味します。たとえば、場所が指定されていないユーザーアカウントのみを表示する場合は、次のようなコマンドを使用できます。
1. Get-MsolUser | Where {{$_.UsageLocation -eq $Null}}
パイプの「|」文字の後に構文を追加することで、レポートを絞り込み、属性の任意の組み合わせを持つユーザーのリストを取得できます。
3.メールレポート
PowerShellは、電子メールの使用状況とユーザーを確認するための強力なツールでもあります。実際、レポートに関しては、主要なシステムアプリケーションの1つです。以下にリストされているのは、電子メールに関するいくつかの有用なレポートです。
- 次のコマンドを使用して、PowerShellを使用してシステム上のすべてのメールボックスに関する情報を取得できます。
1. Get-mailbox | get-MailboxStatistics
- 30日間(またはそれらのメールボックスを閉じる必要があることを意味するその他の必要な期間)ログインしていないすべてのメールボックスのリストを取得することもできます。これを行うには、次のコマンドを実行します。
1. Get-Mailbox –RecipientType 'UserMailbox' | Get-MailboxStatistics | Sort-Object LastLogonTime | Where {{$_.LastLogonTime –lt ([DateTime]::Now).AddDays(-30) }} | Format-Table DisplayName, LastLogonTime
- — , , . . :
1. Get-MailTrafficTopReport
PowerShell Office 365

PowerShellは、Office365環境のカスタマイズにも非常に役立ちます。PowerShellを使用してロックを解除できる非表示のOffice365設定に関する無料のビデオチュートリアルで指摘し ているように、PowerShellインターフェイスからのみ使用できる特定の構成オプションがあります。
構成に最も便利で一般的に使用されるPowerShellコマンドは、ユーザーグループの管理と新しいSharePointサイトの作成に関連するコマンドです。これらのタスクはシステム管理者の作業を複雑にすることが多く、それらを自動化することで多くの時間を節約できます。
1. PowerShell for Office365を使用して「非表示」パラメーターを構成します
前述したように、一部のOffice 365構成オプションには、PowerShellを使用してのみアクセスできます。
最も顕著な例は、Skype forBusinessの構成オプションです。このサービスのオンライン管理センターには、組織での動作をカスタマイズするのに役立ついくつかの設定が含まれています。ただし、PowerShellを使用すると、より多くの構成オプションにアクセスできます。たとえば、標準のSkype会議は次のように設定されます。
- 匿名ユーザーは、各会議に自動的にログインできます。
- 参加者は会議を記録できます。
- 組織内のすべてのユーザーをプレゼンターとして指定できます。
これらのデフォルト設定を変更するには、Powershellを使用できます。上記の3つのオプションすべてを無効にするコマンドは次のとおりです。
1. Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $False -AllowConferenceRecording $False -DesignateAsPresenter "None"
設定をデフォルト値にリセットする場合は、次のコマンドを使用します。
1. Set-CsMeetingConfiguration -AdmitAnonymousUsersByDefault $True -AllowConferenceRecording $True -DesignateAsPresenter "Company"
これは、PowerShellを使用してアクセスできる非表示のパラメーターの一例にすぎません。詳細については、無料のオンラインコースをご覧ください 。
2.PowerShellを使用してOffice365グループメンバーシップを管理する
PowerShellには、Office 365グループを操作するための特別なコマンドレットがいくつかあります。たとえば...
コマンドを実行して、 Office365のすべてのアクティブなグループのリストを表示します。
1. Get-MsolGroup
このコマンドは、メンバーシップを管理するために必要な各グループの16進数のIDも提供します。 グループメンバー
を 追加および削除するには、アカウントの16進数のIDも必要です。これは、次のコマンドで取得できます。
1. Get-MsolUser | Select ObjectID.
次に、適切なコマンドレットを実行して、特定のグループにユーザーを追加または削除できます 。ユーザーを追加するには、次のコマンドを実行して、例に示されている16進数のIDを、グループおよび目的のユーザーに関連するIDに置き換えます。
1. Add-MsolGroupMember -GroupObjectId 5b61d9e1-a13f-4a2d-b5ba-773cebc08eec -GroupMemberObjectId a56cae92-a8b9-
グループからユーザーを削除するには、同じコマンドを実行できますが、最初の部分を変更します。
1. Remove-MsolGroupMember
VaronisがPowerShellと対話する方法
Varonisは、PowerShellの使用をいくつかの方法で補完します。
モニタリング
Varonisは、Office 365(構成の変更を含む)およびPowerShellコマンドのアクティビティを監視および検証します。これにより、管理者または攻撃者がPowerShellを使用して行った変更を追跡できます。
管理者は、有効な変更要求を使用してOffice365の構成または権限を変更する必要があります。この追加レベルの検証により、プロセスと手順がスムーズに実行されます。
攻撃者は、PowerShellを使用してセキュリティ対策を無効にしたり、アカウントを昇格させようとします。Varonisはこれらの変更をキャッチし、攻撃者がOffice365で実行するその他のアクションを監視します。
アラートを受信してアクションを実行する
Varonisを使用すると、ユーザーはアラートを受信したときにPowerShellスクリプトを実行できます。
この機能の最も一般的な使用法は、ランサムウェア攻撃に自動的に応答することです。ランサムウェア脅威モデルは、ユーザーアカウントを非アクティブ化し、ログオンしているすべてのコンピューターをシャットダウンして攻撃を停止するスクリプトを呼び出します。
結論
PowerShellは、Office 365を操作するための効果的なツールです。これにより、システムから情報にすばやくアクセスし、詳細なレポートを生成し、一括アクションを実行できます。また、他の方法では利用できない特定のOffice365機能にアクセスすることもできます。
PowershellをOffice365に接続するのは比較的簡単であり、その結果、上記のすべての高度な機能にアクセスできます。また、Office 365環境をVaronisサイバーセキュリティプラットフォームとより簡単に統合し、 機密データを安全に保つことができます。