0

行いたいのは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にたけている方、どうかご教授ください。

Kouichi 新しいコメントを投稿
回答とコメントは、会員登録(無料)で閲覧できるようになります。