0

我在技术办公室工作,我的很多工作是重置密码/更改活动目录帐户的到期日期。由于我没有访问实际服务器的权限,因此我拥有的只是我的管理工具 -> 活动目录用户和计算机。

每周左右都会给我一个用户名列表,我要检查他们的密码是否过期,以及他们的帐户是否过期。如果帐户已过期,我有一个需要设置的日期,如果 p/w 已过期,每个用户都有一个预定的 p/w

我一直在这里阅读 SA 和 powershell.com,试图找出一种方法来编写脚本来检查我文件中的每个帐户并根据需要设置每个帐户;但是我似乎无法获得有关帐户的信息。

我已经尝试过Get-LDAPUser,我已经尝试过使用Get-ADUser -Filter并且Get-ADUser username -acctExpires。我在这里一直收到 no cmdlet 错误,还尝试查看是否可以使用`Net User user /domain 以某种方式访问​​部分信息无济于事

我不是在要求答案,因为我知道我没有表现出任何工作,但如果可以做到这一点,我希望朝着正确的方向迈出一步!

4

2 回答 2

1

另一种方法:

# 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
}
于 2013-12-24T15:32:05.593 回答
1

尝试这样的事情:

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。

于 2013-07-19T00:23:28.203 回答