Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » [решено] Автоматическое удаление пользователей в системе на состоящей в АД

Ответить
Настройки темы
[решено] Автоматическое удаление пользователей в системе на состоящей в АД

Аватара для Daemonstar

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Доброго времени суток.

Столкнулся с задачей автоматизировать удаление не используемых системных пользователей на серверах Win Srv 2003 не входящих в АД.

Нашел несколько решений (скриптов) для контроллера домена, для удаления доменных пользователей, а вот для локальных ничего не могу найти.

Буду очень признателен всем кто хотя бы подскажет вектор - куда копать.

Спасибо!

Отправлено: 13:41, 27-05-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


1. Зачем надо именно автоматизировать, почему не ручками? У Вас там что — тасуются ежедневно десятки учётных записей?
2. Укажите отличительные признаки «не используемых» от «используемых».
3. Что означает «системных» в словосочетании «системных пользователей»? Чем они отличаются от прочих?

Отправлено: 15:48, 27-05-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 420
Благодарности: 47

Профиль | Отправить PM | Цитировать


Цитата Iska:
Что означает «системных» в словосочетании «системных пользователей»? »
Скорее всего, имелись в виду пользователи удаленного рабочего стола.

-------
Когда я впервые увидел Win8, я спросил: «Windows 3.1 возвращается?» (c)


Отправлено: 16:22, 27-05-2013 | #3


Аватара для Daemonstar

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Добрый день! Спасибо за ответ.

1. Прошу прощения за "корявоизложение", дело в том что как бы это парадоксально не звучало , есть этому некий сакраментальный смысл )) но таких машин порядка дюжины, и они согласно этому смыслу в домен не входят.

2. Для характеристики не используемых учетных записей я приведу пример:

Пришел сотрудник на работу , выдали ему логин/пасс , работа человека не устроила , он уволился через неделю, по истечению N дней от последней авторизации я хочу получить список тех которые не логинились за этот период (N дней), либо без списка а сразу лочу их.

3. «системных пользователей»? Чем они отличаются от прочих? - тем что они пользователи ОС, не СУБД не ВЕБ а именно ОС.

В добавок к выше написанному , хочу приложить официальное решение от Microsoft, но оно работает только на контроллере домена :'(

http://support.microsoft.com/kb/197478

если подсовываю имя хоста в скрипте, получаю нулевой результат.

Отправлено: 16:43, 27-05-2013 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Daemonstar, ясно. Вопрос звучит так: «Как удалить учётные записи неактивных в течение определённого времени локальных пользователей?». По-простому — примерно так (удалять не будем, только отключать):
читать дальше »
Код: Выделить весь код
Option Explicit

Dim strComputer

Dim objIADsContainer
Dim objIADsUser
Dim dtLastLogon

For Each strComputer In Array("Machine01", "Machine02", "MachineN")
	WScript.Echo "[" & strComputer & "]:"
	
	Set objIADsContainer = GetObject("WinNT://" & strComputer & ",computer")
	
	objIADsContainer.Filter = Array("user")
	
	For Each objIADsUser In objIADsContainer
		On Error Resume Next
		dtLastLogon = CDate(objIADsUser.LastLogin)
		
		If Err.Number = 0 Then
			On Error Goto 0
			
			If DateDiff("d", dtLastLogon, Now()) > 90 Then
				WScript.Echo "    " & objIADsUser.Name & vbTab & dtLastLogon
				
				objIADsUser.AccountDisabled = True
				objIADsUser.SetInfo
			End If
		End If
		
		On Error Goto 0
	Next
Next

WScript.Quit 0

Прилагаю также ссылку: Delprof2 - User Profile Deletion Tool • Helge Klein.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:00, 27-05-2013 | #5


Аватара для Daemonstar

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Огромное спасибо, Iska! Вы мне очень помогли!

Отправлено: 10:01, 28-05-2013 | #6

exo exo вне форума

Аватара для exo

Ветеран


Сообщения: 12417
Благодарности: 1442

Профиль | Отправить PM | Цитировать


как вариант:

далее выделить всех, правый клик - Disable, Move
Скрин из 2008 R2, но для 2003 вроде так же было.

-------
Вежливый клиент всегда прав!


Последний раз редактировалось exo, 28-05-2013 в 14:34.


Отправлено: 10:32, 28-05-2013 | #7


Аватара для Daemonstar

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Цитата Iska:
Daemonstar, ясно. Вопрос звучит так: «Как удалить учётные записи неактивных в течение определённого времени локальных пользователей?». По-простому — примерно так (удалять не будем, только отключать): »
Вы просто волшебник, но если вас не затруднит, не могли бы дописать user exception_list, то есть как добавить массив пользователей , которых лочить не нужно?

Отправлено: 12:27, 28-05-2013 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


exo, машины не в домене.

Цитата Daemonstar:
добавить массив пользователей , которых лочить не нужно? »
Попробуйте так (не проверялось!):
читать дальше »
Код: Выделить весь код
Option Explicit

Dim objDictExcludeUsers

Dim strComputer

Dim objIADsContainer
Dim objIADsUser
Dim dtLastLogon


Set objDictExcludeUsers = WScript.CreateObject("Scripting.Dictionary")

With objDictExcludeUsers
	.Add "Иванов", ""
	.Add "Петров", ""
	.Add "Сидоров", ""
End With

For Each strComputer In Array("Machine01", "Machine02", "MachineN")
	WScript.Echo "[" & strComputer & "]:"
	
	Set objIADsContainer = GetObject("WinNT://" & strComputer & ",computer")
	
	objIADsContainer.Filter = Array("user")
	
	For Each objIADsUser In objIADsContainer
		On Error Resume Next
		dtLastLogon = CDate(objIADsUser.LastLogin)
		
		If Err.Number = 0 Then
			On Error Goto 0
			
			If DateDiff("d", dtLastLogon, Now()) > 90 Then
				If Not objDictExcludeUsers.Exists(objIADsUser.Name) Then
					WScript.Echo "    " & objIADsUser.Name & vbTab & dtLastLogon
					
					objIADsUser.AccountDisabled = True
					objIADsUser.SetInfo
				End If
			End If
		End If
		
		On Error Goto 0
	Next
Next

Set objDictExcludeUsers = Nothing

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:32, 28-05-2013 | #9


Аватара для Daemonstar

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Цитата Iska:
Попробуйте так (не проверялось!): »
Вы просто гений vbs!
Огромное спасибо, работает как часы

Отправлено: 14:53, 28-05-2013 | #10



Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » [решено] Автоматическое удаление пользователей в системе на состоящей в АД

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Автоматическое удаление приложений на смартфонах с Android rsod Мобильные ОС, смартфоны и планшеты 6 22-01-2013 13:26
[решено] просмотр активных пользователей в АД Dosmod Microsoft Windows NT/2000/2003 31 07-09-2012 14:56
Установка и удаление программ под АД MickyMouse Microsoft Windows NT/2000/2003 7 19-06-2012 10:12
Заведение новых пользователей в АД. zubkoff.s Microsoft Windows NT/2000/2003 6 28-11-2009 19:17
Права группы пользователей АД winder Microsoft Windows NT/2000/2003 21 24-07-2007 21:13




 
Переход