活动目录中的帐户过期/密码过期
问题描述:
我在科技办公室工作,我的许多工作是重置活动目录帐户上的密码/更改过期日期。由于我无法访问实际的服务器,因此我的管理工具 - >活动目录用户和计算机就是我所拥有的。活动目录中的帐户过期/密码过期
每个星期左右我都会收到一个用户名列表,我要检查他们的密码是否过期,以及他们的账户是否过期。如果账户已过期,我有一个日期,我需要设置它,如果p/w已过期,每个用户都有一个预先确定的p/w
我一直在这里阅读SA和powershell.com,试图弄清楚一种编写脚本的方法,用于检查我的文件中的每个帐户并根据需要设置每个帐户;但我似乎无法获取有关帐户的信息。
我已经试过Get-LDAPUser
,我使用Get-ADUser -Filter
和Get-ADUser username -acctExpires
。我守在这里得到一个没有cmdlet的错误都试过了,也试过看看我是否能在某种程度上只是访问使用'网络用户用户 /域没有部分信息有效
我不是要求一个答案,因为我知道我没有显示任何工作,但如果这可以完成,我想在正确的方向迈出一步!
答
尝试这样:
Import-Module ActiveDirectory
function FileTime2Date($time) {
return ([datetime]::FromFileTime($time)).DateTime
}
$today = Get-Date
$userlist = Get-Content "C:\path\to\username.list"
Get-ADUser -Filter * -Properties * |
select sAMAccountName, accountExpirationDate, @{n='passwordExpiry';
e={FileTime2Date $_.'msDS-UserPasswordExpiryTimeComputed'}} |
? { $userlist -contains $_.sAMAccountName -and (
$_.accountExpirationDate -le $today -or
$_.passwordExpiry -le $today
)
}
未经检验的,虽然,因为我没有在手的AD现在。
答
另一种方法:
# Check if the users account is expired
FUNCTION IsExpired ($Name)
{
Import-Module ActiveDirectory
$ExpirationDate=(Get-ADUser $Name -Properties 'AccountExpirationDate').AccountExpirationDate
$Result = ($ExpirationDate -lt (Get-Date))
Return $Result
}