Exchange Online便利なPowerShellコマンド集

最近はクラウド化が進み、Microsoft 365を利用する方も増えていると思います。

多くのことがGUIでわかりやすくできるMicrosoft 365環境ですが、多くのユーザの処理を一括で行ったりするのは、コマンドベースのPowerShellが便利です。

自分の備忘録のためにも、私がよく使うExchange Online系のコマンドをまとめていきたいと思います。

この記事ではWindows PowerShellを使った、Exchange Onlineの管理を紹介します。


Sponsored

この記事でできること

Windows PowerShellを使ってExchange Onlineサービスの管理ができる。


Windows PowerShellでExchange Onlineへ接続する

1. PowerShellを開きます。
PowerShellは、Windowsスタートメニューの
“Windows PowerShell”フォルダー>
“Windows PowerShell” を右クリックして、”管理者として実行” をクリック。


PowerShellが開いたら、サーバへ接続します。青文字が入力する文字列です。

PS C:WINDOWSsystem32> Get-ExecutionPolicy
>>
RemoteSigned
PS C:WINDOWSsystem32> Set-ExecutionPolicy RemoteSigned

Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose you to the security risks described in the about_Execution_Policies help topic at
https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is “N”): Y
PS C:WINDOWSsystem32> $credential = Get-Credential
>>

cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:
Credential
PS C:WINDOWSsystem32> Connect-ExchangeOnline -UserPrincipalName <管理者メールアドレス>


コマンド一覧

実行内容コマンド
連絡先
連絡先の登録New-MailContact -Name <表示名> -Alias <@より左側の文字列> -ExternalEmailAddress <追加するメールアドレス>
グローバルアドレス帳に表示しないSet-MailContact -Identity <連絡先のメールアドレス> -HiddenFromAddressListsEnabled $true
共有メールボックス
個人メールボックスから共有メールボックスへの変換Set-Mailbox -Identity <変換対象のメールアドレス> -Type Shared
共有メールボックスの送信済みアイテムにメールを残すSet-Mailbox -Identity <共有メールボックスのメールアドレス> -MessageCopyForSentAsEnabled $True
グローバルアドレス帳に表示しないSet-Mailbox -Identity <共有メールボックスのメールアドレス> -HiddenFromAddressListsEnabled $True
メンバーの追加(読み取りと管理(FullAccess))Add-MailboxPermission -Identity <共有メールボックスのメールアドレス> -AccessRights FullAccess -User <追加するメンバーのメールアドレス> -InheritanceType All
メンバーの追加(所有者として送信(SendAs))Add-RecipientPermission -Identity <共有メールボックスのメールアドレス> -AccessRights SendAs -User <追加するメンバーのメールアドレス> -InheritanceType All
配布リスト
配布リスト作成New-DistributionGroup -Name <表示名> -Alias <@より左側の文字列> -PrimarySmtpAddress <配布リストのメールアドレス> -ManagedBy <配布リストの所有者> -Members <追加するメンバーのメールアドレス> -Type Distribution -MemberJoinRestriction Closed -MemberDepartRestriction Open -RequireSenderAuthenticationEnabled $False
グローバルアドレス帳に表示しないSet-DistributionGroup -Identity <配布リストのメールアドレス> -HiddenFromAddressListsEnabled $True
差出人として送信を許可する権限の付与Add-RecipientPermission -Identity <配布リストのメールアドレス> -AccessRights SendAs -Trustee <権限を付与するメンバーのメールアドレス>
所有者の変更Set-DistributionGroup -Identity <配布リストのメールアドレス> –ManagedBy <新しい所有者のメールアドレス>
メンバーの追加Add-DistributionGroupMember -Identity <配布リストのメールアドレス> -Member <追加するメンバーのメールアドレス>
メンバーの削除Remove-DistributionGroupMember -Identity <配布リストのメールアドレス> -Member <削除するメンバーのメールアドレス>
全メンバーの置き換えUpdate-DistributionGroupMember -Identity <配布リストのメールアドレス> -Members <全メンバーのメールアドレス>(カンマ区切り)
差出人として送信を許可する権限の付与Add-RecipientPermission -Identity <配布リストのメールアドレス> -AccessRights SendAs -Trustee <追加するメンバーのメールアドレス>
差出人として送信を許可する権限の削除Remove-RecipientPermission -Identity <配布リストのメールアドレス> -AccessRights SendAs -Trustee <削除するメンバーのメールアドレス>
CSV一括インポートImport-Csv .Import_Contact_Sample1.csv|%{New-MailContact -Name $_.Contactname -DisplayName $_.Contactname -ExternalEmailAddress $_.Email -FirstName $_.Firstname -LastName $_.Lastname}

まとめ

自分の備忘録としてもいいものができました。

順次追加していきたいと思います。