[PowerShell]日付の計算についてご教授ください
行いたいのはPwerShellで、Windowsの有効期限の2週間前になったら警告を出すというものです
まずは、今日と取得した日付の差が変な値になります。
スクリプトは
$WorkFile = $Env:TEMP + "\userinfo.txt"
$User = $env:USERNAME
net user $User /domain | Out-File -FilePath $WorkFile -Encoding Unicode
# ファイルから行を読み込む
$lines = Get-Content -Path $WorkFile -Encoding Unicode
#ワークファイル削除
Remove-Item -Path $WorkFile
# 「パスワード有効期間」で始まる行をフィルタリング
$targetLine = $lines | Where-Object { $_ -match "^パスワード有効期間" }
if ($targetLine) {
Write-Host "期限行:$targetLine"
# 日付部分を抽出
$kigen = [regex]::Matches($targetLine, '\d{4}/\d{2}/\d{2} \d{1,2}:\d{2}:\d{2}')
Write-Host "期限:$kigen"
if ($kigen -eq "") {
exit
}
} else {
exit
}
#
$now = Get-Date
Write-Host "今日:$now"
$k = $kigen -as [DateTime]
Write-Host "期限変換後:$k"
$ts = ($k - $now).Days
Write-Host "差:$ts"
ここまでをPowerShellで流すと、日付取得までは問題ないのですが、差が-739042
期限行:パスワード有効期間 2024/09/01 8:52:28
期限:2024/09/01 8:52:28
今日:06/06/2024 11:53:31
期限変換後:
差:-739042
となります。
今日が、06/06/2024という形式で出ているのが気になりますが、
今日をGet-Dateで求めて、期限を -as [DateTime]で日時型にし、差を求めるというやり方に問題があるのでしょうか。
PowerShellにたけている方、どうかご教授ください。