2011-01-25 2 views
2

У меня есть система Windows XP, и учетные записи пользователей настроены так, что срок их паролей истекает через 45 дней. Я пытаюсь выяснить, вручную или с помощью пакетного файла, что дата истечения срока действия пароля основана на текущем пользователе. Я знаю, что есть файлы VBScript, которые могут это сделать, но эти компьютеры настроены на не выполняйте файлы VBScript, поэтому мне нужно либо просмотреть это вручную, либо пакетные файлы.Дата истечения срока действия пароля

Спасибо!

ответ

5

Если это только на одном компьютере, один пользователь, и побежал локально ...

net user username | findstr "expires" 

Несколько машин побежал удаленно для одной учетной записи пользователя ... поставить все имена компьютеров или IP-адресов в текстовом файле (т.е. systems.txt)

psexec @systems.txt net user username | findstr "expires" 

PsExec свободен от Sysinternals

Если вы хотите знать, срок годности на всех локальных пользователей на нескольких компьютерах в сети вы можете использовать PowerShell и PsExec (удаленные машины не требуют PowerShell), вот так ...

$systems = get-content .\systems.txt; 
foreach ($sys in $systems) { 
foreach ($token in (Get-WmiObject Win32_UserAccount -ComputerName $sys -Filter "Domain='$sys'" | Select-Object -Property Name |ft -AutoSize -HideTableHeaders >> "$sys.txt")) { echo $token }; 
(cat "$sys.txt") -replace ' {2,}','' | ? {$_ -ne ''} | sc "$sys.txt" 
foreach ($strUser in (get-content "$sys.txt")) {psexec \\$sys net user $strUser >> "$sys-accounts.txt" 
} 
} 

вам может понадобиться настроить сценарий немного ... надеюсь, что это помогает.

+3

Если кто-то другой передает находки, что команда ** net user ** не работает, попробуйте: ** net user username/domain | findstr "истекает" ** –

Смежные вопросы