Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » удалить из Active Directory старые компьютеры

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

borov

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В "запущенном" домене много записей о старых компьютерах. Запоминается ли где-нибудь дата последнего логина с данного компьютера или его включения? Как получить такую информацию, если она есть?
Аналогичный вопрос про юзеров.

Всего записей: 166 | Зарегистр. 26-04-2002 | Отправлено: 15:54 10-02-2003
Crash Master



Windows Master
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
borov
С компьютерами увы, тяжело, но юзеров можешь посмотреть с помощью Ideal Administration
http://www.pointdev.com/

----------
Народная примета: Если сисадмин в 08.00 утpа на pаботе, значит он там ночевал...

Всего записей: 4900 | Зарегистр. 15-12-2001 | Отправлено: 09:04 11-02-2003
inQui



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
borov
я смотрел по регистрациям в DHCP, там по дефолту 8 дней таймаута на регистрацию. Если комп в списке не находишь, значит его точно не было в сети более 8 дней.

----------
Не умеешь - научись!

Всего записей: 602 | Зарегистр. 09-12-2001 | Отправлено: 16:17 01-11-2004
Alan Mon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
borov
Мне в свое время сильно помогла вот эта статья

Всего записей: 1116 | Зарегистр. 22-07-2004 | Отправлено: 16:43 01-11-2004
SpiderPlus



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
посмотрите на утилитку OldCmp на http://www.joeware.net/win/free/tools/oldcmp.htm
это то что нужно.

Всего записей: 320 | Зарегистр. 03-03-2002 | Отправлено: 09:48 03-02-2005
cub0



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день  
Я попытался сделать это скриптом. Он выводит список компьютеров из AD, записи о которых отсутствуют в DNS.  
Условия:  
На DNS сервере должен стоять WMI DNS Provider (ftp://ftp.microsoft.com/reskit/win2000/dnsprov.zip)  
Зона в DNS должна быть очищена от устаревших записей, т.е. настроено устаревание.  
Скрипт не оптимизировался  
 
strDNSServer = "zzzz"  
strDomainName = "zzzzz.ru"  
Set Computers = GetObject("LDAP://cn=computers,dc=zzzzz-ra,dc=ru")  
Set objWMIService = GetObject("winmgmts:\\" & strDNSServer & "\root\MicrosoftDNS")  
Set colItems = objWMIService.ExecQuery("Select * from MicrosoftDNS_AType Where DomainName = '" & strDomainName &"'")  
 
Computers.Filter = Array("computer")  
For Each computer in Computers  
IsFound=false  
For Each objItem in colItems  
if objItem.OwnerName<>strDomainName then  
If UCase(computer.cn & "." & strDomainName)=UCase(objItem.OwnerName) then  
IsFound = true  
End If  
End If  
Next  
If not IsFound then  
' Для удаления заменить на computer.DeleteObject (0)  
wscript.echo computer.cn  
End If  
Next  

Всего записей: 20 | Зарегистр. 07-02-2003 | Отправлено: 14:48 03-02-2005
borov

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В O'Reilly Active Directory Cookbook  такое решение:
 
8.8.1 Problem
You want to find inactive computer accounts in a domain.
 
8.8.2 Solution
 
 These solutions only apply to Windows-based machines. Other types of machines (e.g., Unix) that have accounts in Active Directory may not update their login timestamps or passwords, which are used to determine inactivity.
 
8.8.2.1 Using a command-line interface
The following query will locate all inactive computers in the current forest:
 
> dsquery computer forestroot -inactive <NumWeeks>
You can also use domainroot in combination with the -d option to query a specific domain:
 
> dsquery computer domainroot -d <DomainName> -inactive <NumWeeks>
or you can target your query at a specific container:
 
> dsquery computer ou=MyComputers,dc=rallencorp,dc=com -inactive <NumWeeks>
 
This can only be run against a Windows Server 2003 domain functional level or higher domain.
 

Всего записей: 166 | Зарегистр. 26-04-2002 | Отправлено: 14:33 08-02-2005
abatvart



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Специально для этого утиль Active Directory Janitor

Всего записей: 38 | Зарегистр. 23-05-2005 | Отправлено: 14:29 03-11-2005
Serjevski



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
abatvart
 
Спасибо, отличная программа!




Благодарности в ПМ. /ShriEkeR/

Всего записей: 218 | Зарегистр. 19-10-2006 | Отправлено: 11:24 23-06-2009 | Исправлено: ShriEkeR, 11:35 23-06-2009
Nike000



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а я Hyena использую для этих целей

Всего записей: 248 | Зарегистр. 19-10-2006 | Отправлено: 13:31 23-06-2009
araneon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребят подскажите, нужен скрипт для удаления компьютера из домена.
для добавления компьютера в домен пользуемся данным скриптом
 

Код:
 
strComputer = InputBox("Введите имя компьютера","Добавление компьютера в домен","XX")
strComputerUser = InputBox("Введите имя(группу), который(ая) будет добавлять компьютер в домен","Уч. запись для добавления в домен","XXXXX\Moscow-Wks-Add")
Region="Moscow"
 
Const ADS_UF_PASSWD_NOTREQD = &h0020
Const ADS_UF_WORKSTATION_TRUST_ACCOUNT = &h1000
Const ADS_ACETYPE_ACCESS_ALLOWED = &h0
Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &h5
Const ADS_FLAG_OBJECT_TYPE_PRESENT = &h1
Const ADS_RIGHT_GENERIC_READ = &h80000000
Const ADS_RIGHT_DS_SELF = &h8
Const ADS_RIGHT_DS_WRITE_PROP = &h20
Const ADS_RIGHT_DS_CONTROL_ACCESS = &h100
 
Const ALLOWED_TO_AUTHENTICATE = _
    "{68B1D179-0D15-4d4f-AB71-46152E79A7BC}"
Const RECEIVE_AS = "{AB721A56-1E2f-11D0-9819-00AA0040529B}"
Const SEND_AS = "{AB721A54-1E2f-11D0-9819-00AA0040529B}"
Const USER_CHANGE_PASSWORD = _
    "{AB721A53-1E2f-11D0-9819-00AA0040529b}"
Const USER_FORCE_CHANGE_PASSWORD = _
    "{00299570-246D-11D0-A768-00AA006E0529}"
Const USER_ACCOUNT_RESTRICTIONS = _
    "{4C164200-20C0-11D0-A768-00AA006E0529}"
Const VALIDATED_DNS_HOST_NAME = _
    "{72E39547-7B18-11D1-ADEF-00C04FD8D5CD}"
Const VALIDATED_SPN = "{F3A64788-5306-11D1-A9C5-0000F80367C1}"
 
Set objRootDSE = GetObject("LDAP://rootDSE")
Set objContainer = GetObject("LDAP://ou=Computers,ou="&Region&"," & _
    objRootDSE.Get("defaultNamingContext"))
 
Set objComputer = objContainer.Create _
    ("Computer", "cn=" & strComputer)
objComputer.Put "sAMAccountName", strComputer & "$"
objComputer.Put "userAccountControl", _
    ADS_UF_PASSWD_NOTREQD Or ADS_UF_WORKSTATION_TRUST_ACCOUNT
objComputer.SetInfo
 
Set objSecurityDescriptor = objComputer.Get("ntSecurityDescriptor")
Set objDACL = objSecurityDescriptor.DiscretionaryAcl
 
Set objACE1 = CreateObject("AccessControlEntry")
objACE1.Trustee    = strComputerUser
objACE1.AccessMask = ADS_RIGHT_GENERIC_READ
objACE1.AceFlags   = 0
objACE1.AceType    = ADS_ACETYPE_ACCESS_ALLOWED
 
Set objACE2 = CreateObject("AccessControlEntry")
objACE2.Trustee    = strComputerUser
objACE2.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESS
objACE2.AceFlags   = 0
objACE2.AceType    = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT
objACE2.Flags      = ADS_FLAG_OBJECT_TYPE_PRESENT
objACE2.ObjectType = ALLOWED_TO_AUTHENTICATE
 
Set objACE3 = CreateObject("AccessControlEntry")
objACE3.Trustee    = strComputerUser
objACE3.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESS
objACE3.AceFlags   = 0
objACE3.AceType    = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT
objACE3.Flags      = ADS_FLAG_OBJECT_TYPE_PRESENT
objACE3.ObjectType = RECEIVE_AS
 
Set objACE4 = CreateObject("AccessControlEntry")
objACE4.Trustee    = strComputerUser
objACE4.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESS
objACE4.AceFlags   = 0
objACE4.AceType    = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT
objACE4.Flags      = ADS_FLAG_OBJECT_TYPE_PRESENT
objACE4.ObjectType = SEND_AS
 
Set objACE5 = CreateObject("AccessControlEntry")
objACE5.Trustee    = strComputerUser
objACE5.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESS
objACE5.AceFlags   = 0
objACE5.AceType    = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT
objACE5.Flags      = ADS_FLAG_OBJECT_TYPE_PRESENT
objACE5.ObjectType = USER_CHANGE_PASSWORD
 
Set objACE6 = CreateObject("AccessControlEntry")
objACE6.Trustee    = strComputerUser
objACE6.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESS
objACE6.AceFlags   = 0
objACE6.AceType    = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT
objACE6.Flags      = ADS_FLAG_OBJECT_TYPE_PRESENT
objACE6.ObjectType = USER_FORCE_CHANGE_PASSWORD
 
Set objACE7 = CreateObject("AccessControlEntry")
objACE7.Trustee    = strComputerUser
objACE7.AccessMask = ADS_RIGHT_DS_WRITE_PROP
objACE7.AceFlags   = 0
objACE7.AceType    = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT
objACE7.Flags      = ADS_FLAG_OBJECT_TYPE_PRESENT
objACE7.ObjectType = USER_ACCOUNT_RESTRICTIONS
 
Set objACE8 = CreateObject("AccessControlEntry")
objACE8.Trustee    = strComputerUser
objACE8.AccessMask = ADS_RIGHT_DS_SELF
objACE8.AceFlags   = 0
objACE8.AceType    = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT
objACE8.Flags      = ADS_FLAG_OBJECT_TYPE_PRESENT
objACE8.ObjectType = VALIDATED_DNS_HOST_NAME
 
Set objACE9 = CreateObject("AccessControlEntry")
objACE9.Trustee    = strComputerUser
objACE9.AccessMask = ADS_RIGHT_DS_SELF
objACE9.AceFlags   = 0
objACE9.AceType  = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT
objACE9.Flags  =  ADS_FLAG_OBJECT_TYPE_PRESENT
objACE9.ObjectType = VALIDATED_SPN
 
objDACL.AddAce objACE1
objDACL.AddAce objACE2
objDACL.AddAce objACE3
objDACL.AddAce objACE4
objDACL.AddAce objACE5
objDACL.AddAce objACE6
objDACL.AddAce objACE7
objDACL.AddAce objACE8
objDACL.AddAce objACE9
 
objSecurityDescriptor.DiscretionaryAcl = objDACL
objComputer.Put "ntSecurityDescriptor", objSecurityDescriptor
rem objComputer.SetInfo
Wscript.echo "Completed"    
 

 
а вот как удалить скриптом не знаю (((
нашел вот такой но не пойму что куда, и вообще это подойдёт?
 

Код:
 
strComputer = "atl-pro-040"
 
set objComputer = GetObject("LDAP://CN=" & strComputer & _
    ",CN=Computers,DC=fabrikam,DC=com")
objComputer.DeleteObject (0)
 

Всего записей: 156 | Зарегистр. 18-07-2008 | Отправлено: 14:26 16-04-2013
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » удалить из Active Directory старые компьютеры


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru