|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Logon script для компьютеров в группе AD |
|
VBS/WSH/JS - [решено] Logon script для компьютеров в группе AD
|
Старожил Сообщения: 150 |
Профиль | Отправить PM | Цитировать Добрый день.
Есть скрипт VBS для пользователей, который запускается через GPO при входе пользователя в систему. Все бы ничего, но он, как ему и положено, также запускается и на терминальном сервере, что не рационально. Есть желание добавить в скрипт сначала проверку компьютера, на то, что он входит в группу компьютеров AD (например SC) и уже тогда полностью отрабатывать скрипт, если данного компьютера нет в группе, то завершение скрипта. Сначала хотел прописать наличие имени компьютера в файле SC.txt, но это будет нелогично, ведь компьютеры могут добавиться и каждый раз придется править также этот файл. Надеюсь на вашу помощь в доработке скрипта. |
|
------- Отправлено: 08:35, 25-09-2015 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Rolenarim, а разве OU с указанными компьютерами нет? Это ведь указывалось в условии.
|
Отправлено: 23:39, 26-09-2015 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 150
|
Профиль | Отправить PM | Цитировать На данный момент все компьютеры находятся в 2-х OU (Domain Controllers и Computers), Ни та ни другая OU не содержит того перечня компьютеров (вместе взятых), необходимых для обрабатываемого скрипта.
Однако есть еще OU Group и внутри нее подгруппа SC (не знаю как она характеризуется), в нее я и включил нужный список компьютеров. UPD: В общем создал дополнительные OU, в которых разбил более детально все машины и сделал скрипт на основе предложения Iska: Спасибо за помощь. |
------- Последний раз редактировалось Rolenarim, 28-09-2015 в 13:54. Причина: Задача решена Отправлено: 07:11, 28-09-2015 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Elven:
Цитата Rolenarim:
В этом случае проверку можно обустроить следующим образом (на основе IsMember2, работает и для опосредованного членства в группе): Скрытый текст
Option Explicit
Dim strGroup
Dim objGroupList
Dim objADObject
strGroup = "SC"
Set objADObject = GetObject("LDAP://" & WScript.CreateObject("ADSystemInfo").ComputerName)
If IsMember(strGroup) Then
' Place your code here
End If
WScript.Quit 0
'=============================================================================
'=============================================================================
Function IsMember(ByVal strGroup)
If (IsEmpty(objGroupList) = True) Then
Set objGroupList = WScript.CreateObject("Scripting.Dictionary")
Call LoadGroups(objADObject)
End If
IsMember = objGroupList.Exists(strGroup)
End Function
'=============================================================================
'=============================================================================
Sub LoadGroups(ByVal objADObject)
Dim colstrGroups, objGroup, j
objGroupList.CompareMode = vbTextCompare
colstrGroups = objADObject.memberOf
If (IsEmpty(colstrGroups) = True) Then
Exit Sub
End If
If (TypeName(colstrGroups) = "String") Then
colstrGroups = Replace(colstrGroups, "/", "\/")
Set objGroup = GetObject("LDAP://" & colstrGroups)
If (objGroupList.Exists(objGroup.sAMAccountName) = False) Then
objGroupList.Add objGroup.sAMAccountName, True
Call LoadGroups(objGroup)
End If
Exit Sub
End If
For j = LBound(colstrGroups) To UBound(colstrGroups)
colstrGroups(j) = Replace(colstrGroups(j), "/", "\/")
Set objGroup = GetObject("LDAP://" & colstrGroups(j))
If (objGroupList.Exists(objGroup.sAMAccountName) = False) Then
objGroupList.Add objGroup.sAMAccountName, True
Call LoadGroups(objGroup)
End If
Next
End Sub
'=============================================================================
|
||
Отправлено: 15:28, 28-09-2015 | #13 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2008 R2 - Задание в шедуллер с помощью logon script | svenser@vk | Windows Server 2008/2008 R2 | 2 | 19-03-2015 14:10 | |
[решено] Отмена Logon Script | Kaimor | Microsoft Windows NT/2000/2003 | 5 | 19-01-2012 17:43 | |
Надо убить Logon script в Доменной политике | NiOl | Microsoft Windows NT/2000/2003 | 7 | 04-06-2010 14:47 | |
logon script на серевере терминалов | klesk | Microsoft Windows NT/2000/2003 | 1 | 22-05-2008 02:19 | |
NT4 W2K сервер и W9X-ME logon script | Guest | Microsoft Windows NT/2000/2003 | 6 | 16-10-2003 16:41 |
|