私はSharepoint Powershellについてあまり知識がありませんが、infopathフォームライブラリ内の有効期限日フィールドと今日の日付のチェックを自動化するために何かをつなぎ合わせようとしています.
次の列のすべての日付を比較したいのですが、
Construction_x0020_Card_x0020_Expiry
今日の日付まで。値が今日の日付よりも小さいか null の場合 (ライセンスの有効期限が切れているか、ライセンスがないことを意味します)、次のフィールドのテキストを変更します。
Construction_x0020_Card_x0020_Type
これは私がこれまでに持っているものです。
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) {
Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}
$webUrl = "https://####"
$listDisplayName = "HR Employee Record"
$ExpiryDate = @($Construction_x0020_Card_x0020_Expiry)
?? これが機能するかどうかわかりません.$Construction_x0020_Card_x0020_Expiry は配列ですか?
$TodayDate = (Get-Date).ToString("dd-MM-yyyy")
$convertedExpiryDate = $ExpiryDate.ToString("dd-MM-yyyy")
?? $Construction_x0020_Card_x0020_Expiry は System.Object[] が System.DateTime に変換しようとしています。
foreach ($item in $convertedExpiryDate.items | where {$convertedExpiryDate -lt $TodayDate}) {
if ($convertedExpiryDate -eq $null) {
Write-Host @($Construction_x0020_Card_x0020_Type)["$null"]
} elseif ($convertedExpiryDate -lt $TodayDate) {
Write-Host @($Construction_x0020_Card_x0020_Type)["Expired"]
} elseif ($convertedExpiryDate -ge $TodayDate) {
Write-Host @($Construction_x0020_Card_x0020_Type)["Valid"]
}
}
ありがとう、
ランス