Появилась у меня необходимость получить из домена список компьютеров которые были неактивны месяц и более. В общем те что давно не эксплуатируются, а из домена выведены не были. Порывшись в своих запасниках скриптов нашел старый VBS который выполняет нужную функцию:
On Error Resume NextDomainString=Inputbox(«Введите имя домена»,»Проверка активных компьютеров»,»Имя домена»)if DomainString=»» thenwscript.echo «Имя домена не введено или сценарий отменен.»wscript.quitend ifnumDays=InputBox(«Введите число дней, определяющее порог неактивности» & «учетных записей»,»Проверка активных компьютеров»,»XX»)if numDays=»» thenwscript.echo «Число дней не задано или сценарий отменен.»wscript.quitend ifSet fs=WScript.CreateObject(«Scripting.FileSystemObject»)Set f=fs.OpenTextFile(«donefs.txt»,2,True)Set DomainObj = GetObject(«WinNT://»&DomainString)if err.number<>0 thenwscript.echo «Ошибка соединения с » & DomainStringwscript.quitend ifDomainObj.Filter = Array(«computer»)rem Wscript.echo «Учетные записи домена » & DomainString & » старше » & numDays & » дней.»For each Computer in DomainObjSet Account = GetObject(«WinNT://» & DomainString & «/» & Computer.Name & «$»)RefreshTime = FormatNumber((Account.get(«PasswordAge»))/86400,0)If CInt(RefreshTime) >= CInt(numDays) Thenf.WriteLine Computer.Name & » ; » & RefreshTime & » дней.»End IfNextset DomainObj=Nothingset Shell=Nothing
Собственно скрипт очень простой, берет из AD выборку компьютеров и проверяет когда последний раз изменялся PasswordAge. Если больше указанного количества дней то выводит в текстовый файлик.
Разумеется введенный параметр должен быть больше дефолтного значения или установленного GPO значения: Обновление УЗ компьютера
4 комментария
Список неактивных пользователей домена | Жизнь ИТшника
Спасибо за код, очень помог
Спасибо!
А куда код прописывать?