PowerShellを使用してO365の監査ログ(AuditLog)を取得する際に日付を指定する場合がある。
意外と、PowerShellで特定の月末を取得するという方法がジャストで見つけられなかったので備忘録もかねて記載する。
例:2020年2月18日の月末を取得
GetEndDay.ps1
$targetDay = [DateTime]::ParseExact("20200218","yyyyMMdd",$null)
$EndDay = [DateTime]::DaysInMonth($targetDay.Tostring("yyyy"),$targetDay.Tostring("MM"))
$targetEndDay = $targetDay.Tostring("yyyyMM") + $EndDay
Write-Host ([DateTime]::ParseExact($targetEndDay,"yyyyMMdd",$null))
出力結果
2020年2月29日 0:00:00
参考にしたページ:https://teratail.com/questions/111835
単に先月末であれば下記の方がスマートかもしれません。
GetPreEndDay.ps1
(Get-Date -Day 1).AddDays(-1)
出力結果
2021年11月30日 10:00:00