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

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

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

Аватара для Daemonstar

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


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

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


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

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

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

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

Спасибо!

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

 

Аватара для Daemonstar

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


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

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


Добавлено логирование и мейл нотификация.

читать дальше »
Set wshShell = WScript.CreateObject( "WScript.Shell" )
Dim strComputer
Dim objIADsContainer
Dim objIADsUser
Dim dtLastLogon
Dim objDictExcludeUsers
dateStamp = Now()

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

With objDictExcludeUsers
.Add "excludе_login1", ""
.Add "exclude_login2", ""
.Add "exclude_login3", ""
.Add "login4", ""
End With

Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Set objLog = objFSO.CreateTextFile("C:\blocked_users_log.txt")
objLog.WriteLine (cstr(dateStamp))

StrComputer = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
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 And (objIADsUser.AccountDisabled = False) Then
If Not objDictExcludeUsers.Exists(objIADsUser.Name) Then
objLog.WriteLine "Blocked account: " & objIADsUser.Name & " Last login: " & dtLastLogon & vbNewLine
objIADsUser.AccountDisabled = True
objIADsUser.SetInfo
End If
End If
End If
Next
objLog.Close
On Error Goto 0
Set S = CreateObject("Wscript.Shell")
set FSO=createobject("scripting.filesystemobject")
Call SendPost("smtp.server.com","to_email1@example.com, to_email2@example.com","from_email@example.com","Accounts blocked on "&StrComputer,"")
Function SendPost(strSMTP_Server,strTo,strFrom,strSubject,strBody)
Set iMsg=CreateObject("CDO.Message")
Set iConf=CreateObject("CDO.Configuration")
Set Flds=iConf.Fields
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=0
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusername")="blabla"
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword")="xXx"
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.example.com"
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25
Flds.Update
iMsg.Configuration=iConf
iMsg.To=strTo
iMsg.From=strFrom
iMsg.Subject=strSubject
iMsg.TextBody=strBody
'iMsg.AddAttachment "C:\blocked_users_log.txt"
Const FileToBeUsed = "C:\blocked_users_log.txt"
Set objLog = objFSO.OpenTextFile(FileToBeUsed)
'** The ReadAll method reads the entire file into the variable BodyText
iMsg.Textbody = objLog.ReadAll
'** Close the file
objLog.Close
'** Clear variables
Set objLog = Nothing
iMsg.Send
End Function
Set iMsg=Nothing
Set iConf=Nothing
Set Flds=Nothing
WScript.Quit 0

Отправлено: 16:05, 28-05-2013 | #11



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

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


Ветеран


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

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


Daemonstar, добавьте ещё оформление кода тэгом [code].

Отправлено: 05:39, 29-05-2013 | #12


Старожил


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

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


Для работы со списком исключений (в данном случае) можно обойтись только строковыми функциями. Я обычно делаю так:
Код: Выделить весь код
strExclude = "Иванова;Петров;Сидоров;"
strUser = "Иванов"
If InStr(1, strExclude, strUser & ";", vbTextCompare) = 0 Then
    WScript.Echo "Не является исключением."
Else
    WScript.Echo "Является исключением."
End If
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:36, 29-05-2013 | #13



Компьютерный форум 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




 
Переход