2013-07-18 2 views
0

Я работаю в техническом офисе, и большая часть моей работы заключается в сбросе паролей/датах истечения срока действия в активных учетных записях. Поскольку у меня нет доступа к фактическому серверу, то есть мои административные инструменты -> активные пользователи каталогов и компьютеры - это то, что у меня есть.истечение срока действия учетной записи/истечение срока действия пароля в активной директории

Каждую неделю или около того мне присваивается список имен пользователей, я должен проверить и проверить, истек ли их пароли, и если их учетная запись истекла. Если срок действия учетной записи истек, у меня есть дата, которую мне нужно установить, если срок действия p/w истек, у каждого пользователя есть предопределенные p/w

Я читал здесь, где находится SA, и powershell.com пытается выяснить способ написать скрипт для проверки каждой из этих учетных записей в моем файле и установки каждой учетной записи по мере необходимости; однако я не могу получить информацию о счетах.

Я попытался Get-LDAPUser, я попытался с помощью Get-ADUser -Filter и Get-ADUser username -acctExpires .I держать не получаю никаких ошибок командлетов здесь, также попытался увидеть, если я каким-то образом мог бы просто получить доступ к частичной информации, не используя `Net User пользователя/домен не help

Я не прошу ответа, поскольку я знаю, что я не показал никакой работы, но если это можно сделать, я хотел бы сделать шаг в правильном направлении!

ответ

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 под рукой прямо сейчас.

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 
} 
Смежные вопросы