派遣先の大学でマイクロソフトのOffice365メールを使うことになり、その設定でowerShellを使う必要がありました。
ちなみに私は、PowerShellを使うのは、今回が初めてです。ネットで多少調べたくらいですが、DOSのバッチファイルよりも、UNIXのシェルスクリプトといったところでしょうか。マイクロソフトらしくない機能、というのが第一印象です。
なお、Office365でやっているのは、URLを指定し、そのサイトに対してコマンドを発行する機能のようで、接続に認証が必要です。当初、派遣先がサポートを依頼している会社からもらってマニュアルでは、認証はGUIなWindowからキーボードで入力が必要で不便でした。
そこで、その辺も含めてスクリプトしたいと思い、ネットで調べると簡単に見つけられます。きっと、同じことを考えているエンジニアが調べているのでしょう。このサイトで紹介されていたコマンドをそのまま使わせてもらいました。
下記のスクリプトは、Office365のアカウントに登録した監査ログ関係の設定が、正しく設定されていることをチェックするスクリプトです。
#
$Email = "<<ここにOffice365のメールアドレスを記載>>"
#
Write-Host "監査ログの設定 ($Eail)確認"
#$UserCredential = Get-Credential
$password = ConvertTo-SecureString "<<認証アカウントのパスワード>>" -asplaintext -force
$UserCredential = New-Object System.Management.Automation.PsCredential "<<認証に使うアカウント>>",$password
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session
#Get-Mailbox $Email -Filter {RecipientTypeDetails -eq "UserMailbox"} | Set-Mailbox -AuditEnabled $true
#
#Get-Mailbox $Email -Filter {RecipientTypeDetails -eq "UserMailbox"} | Set-Mailbox -AuditOwner @{Add="MailboxLogin","HardDelete","SoftDelete","Create","MoveToDeletedItems","Move","Update"}
#
Get-Mailbox $Email -Filter {RecipientTypeDetails -eq "UserMailbox"} | Export-csv -path <>
Write-Host "CSVファイルを出力しました"
今どきのWindows Server 管理者や、Azureの保守担当者は、こういったスクリプトで仕事をやっているそうです。LinuxというかUNIXのやり方に寄ってきた、というのか、それともGUIの管理ツールを作るのが面倒になったのか。