这是我来回答最接近:新ADUser便有在PowerShell中,帐户过期加一天
Set-ADAccountExpiration in PowerShell sets AD account -1 day. Why?
然而,这并不在我的情况下工作。我使用Active Directory中的PowerShell创建新用户。帐户过期从一个CSV文件拉到这样的:
$ExpireDate = $Line.'Contract Expiration'
if ($ExpireDate -eq "") {$AccountExpiryDate = [DateTime]::Now.AddYears(1)}
else {$AccountExpiryDate = $ExpireDate}
然后加入到新-ADUser便有:
New-ADUser -Path $TestOU -SamAccountName $SamAccountName -AccountExpirationDate $AccountExpiryDate `
它拉就好了日期,但需要为下一个一天(我明白上午12点的套头衫)。当我尝试这样:
else {$AccountExpiryDate = ([DateTime]($Line.'Contract Expiration')).AddDays(1)}
它拉动原来的日期,就好像AddDays(1)没有附加。有任何想法吗?
发现的解决方案(感谢奥斯汀法国)
$ExpireDate = $Line.'Contract Expiration'
$nDate = [DateTime]::Parse($ExpireDate)
if ($ExpireDate -eq "") {$AccountExpiryDate = [DateTime]::Now.AddYears(1)}
else {$AccountExpiryDate = $nDate.AddDays(1)}
试着解析日期?例如:'$ nDate = [DateTime] :: Parse($ string); $ nDate.AddDays(1)' –
甜,另一个说明:一个尝试/捕获将是一个伟大的想法,以防日期非常畸形(因此整个脚本不会死!) –