Скрипт — список неактивных компьютеров в домене

26.07.2010

Появилась у меня необходимость получить из домена список компьютеров которые были неактивны месяц и более. В общем те что давно не эксплуатируются, а из домена выведены не были. Порывшись в своих запасниках скриптов нашел  старый VBS который выполняет нужную функцию:

On Error Resume Next
DomainString=Inputbox(«Введите имя домена»,»Проверка активных компьютеров»,»Имя домена»)
if DomainString=»» then
wscript.echo «Имя домена не введено или сценарий отменен.»
wscript.quit
end if
numDays=InputBox(«Введите число дней, определяющее порог неактивности» & «учетных записей»,»Проверка активных компьютеров»,»XX»)
if numDays=»» then
wscript.echo «Число дней не задано или сценарий отменен.»
wscript.quit
end if
Set fs=WScript.CreateObject(«Scripting.FileSystemObject»)
Set f=fs.OpenTextFile(«donefs.txt»,2,True)
Set DomainObj = GetObject(«WinNT://»&DomainString)
if err.number<>0 then
wscript.echo «Ошибка соединения с » & DomainString
wscript.quit
end if
DomainObj.Filter = Array(«computer»)
rem Wscript.echo «Учетные записи домена » & DomainString & » старше » & numDays & » дней.»
For each Computer in DomainObj
Set Account = GetObject(«WinNT://» & DomainString & «/» & Computer.Name &  «$»)
RefreshTime = FormatNumber((Account.get(«PasswordAge»))/86400,0)
If CInt(RefreshTime) >= CInt(numDays) Then
f.WriteLine  Computer.Name & » ; » &  RefreshTime & » дней.»
End If
Next
set DomainObj=Nothing
set Shell=Nothing

Собственно скрипт очень простой, берет из AD выборку компьютеров и проверяет когда последний раз изменялся PasswordAge.  Если больше указанного количества дней то выводит в текстовый файлик.

Разумеется введенный параметр должен быть больше дефолтного значения или установленного GPO значения:  Обновление УЗ компьютера

4 комментария

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *