POP プロトコルの有効化、無効化を管理者が自分で設定する

発行日: 2011 年 2 月

POP プロトコルは既定の状態では無効になっていますが、従来はテクニカル サポートにお問い合わせをいただくことで特定のメールボックスに対して POP プロトコルを有効化していました。POP プロトコルの有効化・無効化は、2011 年 1 月のサービス更新以降、ユーザー管理者側での PowerShell による設定が可能となりました。この記事では、ユーザー管理者がすぐに使える POP プロトコル有効化・無効化の設定スクリプトを紹介します。

PowerShell スクリプトによる自動化を行うには、最新の Microsoft Online Services 移行ツールや PowerShell をインストールしておく必要があります。詳細は以下を参照してください。

POP プロトコルを特定のユーザー リストに対して有効化する

準備ができたら、以下のスクリプトをメモ帳にコピーし、EnablePOP.ps1 というファイルに保存します。このスクリプトでは、CSV ファイルで指定したユーザーのPOPプロトコル有効化を一括で設定することができます。

param(
  [String]$ImportFile = "D:\Targetusers.csv"
)

add-PSSnapIn Microsoft.Exchange.Transporter
$bposlogin = "admin@contoso.com"
$bpospwd = "Password"
$str=ConvertTo-SecureString $bpospwd -AsPlainText -Force

$bposcred = New-Object System.Management.Automation.PSCredential($bposlogin, $str)

Import-Csv $ImportFile | Select-Object mailboxname | ForEach-Object {
    $result = Enable-MSOnlinePOPAccess -Identity $_.mailboxname -Credential $bposcred
    Write-Host "`r"

ここで、以下のコマンド

add-PSSnapIn Microsoft.Exchange.Transporter

は、Microsoft Online Services 移行ツールによって追加された PowerShell コマンドレットを有効にするためのコマンドです。ちなみに、「移行コマンド シェル」から Microsoft Online Services 専用の PowerShell スクリプトを実行する場合は、このコマンドを実行する必要はありません。

$bposlogin と $bpospwd には、管理者権限をもつアカウントのユーザー名とパスワードで置き換えてください。なお、このテキスト ファイルは管理者アカウント情報を含むため、取り扱いには十分注意ください。

一方、CSV ファイルには、1 行目に mailboxname というヘッダーを付けて、そのあとに POP プロトコルを有効化したいユーザーの電子メール アドレスを並べます。

mailboxname
user1@contoso.com
user2@contoso.com
user3@contoso.com
user4@contoso.com
user5@contoso.com

この CSV ファイルは以下のコマンド

Import-Csv $ImportFile | Select-Object mailboxname | ForEach-Object

によって読み込まれ、指定したそれぞれのユーザーに対してループを回します。その後、

$result = Enable-MSOnlinePOPAccess -Identity $_.mailboxname -Credential $bposcred

で、mailboxname 列に書かれたアドレスに Enable-MSOnlinePOPAccess コマンドで設定を行います。結果を $result に代入していたり、次の行で Write-Host コマンドを使っているのは、実行結果のテキストを整形するためです。

以下のようなコマンド ファイル SetAlternateRecipient.cmd を作成しておくと、入力するCSVを指定して、結果をログファイルに出力することができます。Powershell.exe のパスは Windows フォルダの場所に応じて適切なパスを指定してください。引数には SetAlternateRecipient.ps1、入力する CSV ファイル、および出力するログファイルの適切なパスを指定してください。

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-file" "EnablePOP.ps1" "TargetUser.csv" > "result.txt"

コマンドが正しく実行されると、以下の結果が出力されます。

Successfully enabled POP access for mailbox user1@contoso.com.
Successfully enabled POP access for mailbox user2@contoso.com.
Successfully enabled POP access for mailbox user3@contoso.com.
Successfully enabled POP access for mailbox user4@contoso.com.
Successfully enabled POP access for mailbox user5@contoso.com.

POP プロトコルを特定のユーザー リストに対して無効化する

POP プロトコルを無効化したい場合は、Enable-MSOnlinePOPAccess コマンドの代わりに Disable-MSOnlinePOPAccess コマンドを使うだけであとはほぼ同じ仕組みです。

以下のスクリプトをメモ帳にコピーし、DisablePOP.ps1 というファイルに保存します。

pparam(
  [String]$ImportFile = "D:\Targetusers.csv"
)

add-PSSnapIn Microsoft.Exchange.Transporter
$bposlogin = "admin@contoso.com"
$bpospwd = "Password"
$str=ConvertTo-SecureString $bpospwd -AsPlainText -Force

$bposcred = New-Object System.Management.Automation.PSCredential($bposlogin, $str)

Import-Csv $ImportFile | Select-Object mailboxname | ForEach-Object {
    $result = Disable-MSOnlinePOPAccess -Identity $_.mailboxname -Credential $bposcred
    Write-Host "`r"
}

CSV ファイルは前と同じ形式のものを使います。コマンドが正しく実行されると、以下の結果が出力されます。

Successfully disabled POP access for mailbox user1@contoso.com.
Successfully disabled POP access for mailbox user2@contoso.com.
Successfully disabled POP access for mailbox user3@contoso.com.
Successfully disabled POP access for mailbox user4@contoso.com.
Successfully disabled POP access for mailbox user5@contoso.com.