0

私はテクニカル オフィスで働いており、私の仕事の多くは、Active Directory アカウントのパスワードをリセットしたり、有効期限を変更したりすることです。私は実際のサーバーにアクセスできないので、私の管理ツール -> Active Directory ユーザーとコンピューターだけが私が持っているものです。

毎週かそこらでユーザー名のリストが渡され、パスワードの有効期限が切れていないか、アカウントの有効期限が切れていないかを確認する必要があります。アカウントの有効期限が切れている場合は、日付を設定する必要があります。p/w の有効期限が切れている場合、各ユーザーには事前に決められた p/w があります。

私は SA と powershell.com についてここで読んでいて、ファイル内のこれらの各アカウントをチェックし、必要に応じて各アカウントを設定するスクリプトを作成する方法を見つけようとしています。ただし、アカウントに関する情報を取得できないようです。

試してみましたGet-LDAPUser、使用してみGet-ADUser -FilterましGet-ADUser username -acctExpiresた.ここでコマンドレットエラーが発生し続けます.また、「ネットユーザーユーザー/ドメインを使用して部分的な情報にアクセスできないかどうかを確認しようとしました

仕事を見せていないことはわかっているので、答えを求めているわけではありませんが、これが可能であれば、正しい方向への一歩を踏み出したいと思います!

4

2 に答える 2

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 に答える