|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Logon script для компьютеров в группе AD |
|
||||
|
|
VBS/WSH/JS - [решено] Logon script для компьютеров в группе AD
|
|
Старожил Сообщения: 150 |
Добрый день.
Есть скрипт VBS для пользователей, который запускается через GPO при входе пользователя в систему. Все бы ничего, но он, как ему и положено, также запускается и на терминальном сервере, что не рационально. Есть желание добавить в скрипт сначала проверку компьютера, на то, что он входит в группу компьютеров AD (например SC) и уже тогда полностью отрабатывать скрипт, если данного компьютера нет в группе, то завершение скрипта. Сначала хотел прописать наличие имени компьютера в файле SC.txt, но это будет нелогично, ведь компьютеры могут добавиться и каждый раз придется править также этот файл. Надеюсь на вашу помощь в доработке скрипта. |
|
|
------- Отправлено: 08:35, 25-09-2015 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Rolenarim:
|
|
|
Отправлено: 09:34, 25-09-2015 | #2 |
|
Старожил Сообщения: 150
|
Профиль | Отправить PM | Цитировать Да, совершенно верно.
CN=SC,OU=Group,DC=SRV,DC=RU |
|
------- Отправлено: 09:45, 25-09-2015 | #3 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 10:39, 25-09-2015 | #4 |
|
Старожил Сообщения: 150
|
Профиль | Отправить PM | Цитировать Скрипт запускается, но желаемого результата нет.
Option Explicit
If StrComp( _
GetObject("LDAP://" & WScript.CreateObject("ADSystemInfo").ComputerName).Parent, _
"LDAP://CN=SC,OU=Group,DC=SRV,DC=RU", _
vbTextCompare _
) = 0 Then
msgbox ("da")
else
msgbox ("net")
End If
Возможно я не правильно принимаю параметры. При проверке на сервере: Function GetComputerOU
Dim objSysInfo: Set objSysInfo = CreateObject("ADSystemInfo")
Dim objComputer: Set objComputer = GetObject("LDAP://" & objSysInfo.ComputerName)
Dim objOU : Set objOU = GetObject(objComputer.Parent)
GetComputerOU = objOU.OU
End Function
Wscript.Echo GetComputerOU
А при запуске на рабочей станции отображается пустое окно. Если запустить тоже самое с параметром "LDAP://CN=SC,OU=Group,DC=SRV,DC=RU" то на обеих машинах отображается Group. В результате должно получиться: SRV1 входит в подгруппу SC, группы Group - скрипт продолжается Comp1 не входит - скрипт завершается |
|
|
------- Отправлено: 14:19, 25-09-2015 | #5 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Rolenarim:
Цитата Rolenarim:
Покажите скриншот того, что Вы именуете: Цитата Rolenarim:
|
|||
|
Отправлено: 15:04, 25-09-2015 | #6 |
|
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Я подобное решал фильтром по процессу rdp.
strComputer = "."
rdpProc = 1
Set objWMIService = GetObject( _
"winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_Process" & _
" WHERE Name = 'rdpclip.exe'",,48)
For Each objItem in colItems
If objItem.Name = "rdpclip.exe" Then
rdpProc = 0
exit for
End If
Next
If rdpProc = 0 Then
filetxt.WriteLine("Терминальный сеанс Checkcfg не нужен")
Else
' checkcfg
call objWSH.Run("\....\checkcfg\Checkcfg.exe", Hide_Window)
filetxt.WriteLine("Запускаем Checkcfg ")
|
|
Последний раз редактировалось Nand, 25-09-2015 в 22:02. Причина: неправилно вспомнил Отправлено: 21:47, 25-09-2015 | #7 |
|
Старожил Сообщения: 150
|
Профиль | Отправить PM | Цитировать Nand,
Хороший вариант. Но для общего понимания надо и с первым разобраться ) Во вложении скрины ветки AD. |
|
------- Отправлено: 11:15, 26-09-2015 | #8 |
|
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Я конечно понимаю что это несколько не то об чем спрашивается, но не проще ли не запускать логон скрипт через политики в определенных OU. имхо в GPO это решается проще и быстрее.
|
|
Отправлено: 11:29, 26-09-2015 | #9 |
|
Старожил Сообщения: 150
|
Профиль | Отправить PM | Цитировать Elven,
Предлагаете создать OU=Computers1 перенести в него из OU=Computers нужные машины и создать Dafault policy для нее с нужным скриптом? |
|
------- Отправлено: 13:52, 26-09-2015 | #10 |
|
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| 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 | |
|