Скрипт обновления(установки) программного обеспечения на клиентских машинах в домене

blackangel
Дата: 09.01.2008 20:48:18
Как запустить скрипт под учетной записью доменного администратора на машине с которой запускаю скрипт(речь идет только про локальную машину)?
Вариант таков:
Предлагаю использовать "эффект зеркала":
- сценарий на исходной станции запускает (с правам администратора домена) сценарий на контроллере домена;
- сценарий, запущенный на контроллере домена, уже на исходной станции выполняет (с указанными ему привилегиями) нужную задачу.
Пример сценария, запускаемого на исходной станции:


Dim strComputer, strUser, strPassword
Dim objLocator, objConnection, objProcessConst
strDomain = "domain_name\"
strComputer = "domain_controller_name"
strUser = InputBox("Имя")
If Len(strUser) > 0 Then
strUser = strDomain & strUser
strPassword = InputBox("Пароль")
If Len(strPassword) > 0 Then
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objConnection = objLocator.ConnectServer(strComputer, "root\cimv2", strUser, strPassword)
Set objProcess = objConnection.Get("Win32_Process")
intResCode = objProcess.Create("wscript.exe c:\temp\script2.vbs """ & strUser & """ """ & strPassword & """", Null, Null, intProcID)
Set objProcess = Nothing
Set objConnection = Nothing
Set objLocator = Nothing
Else
WScript.Echo "Пароль - обязательный параметр"
End If
Else
WScript.Echo "Имя - обязательный параметр"
End If


Пример сценария, запускаемого на контроллере домена для управления исходной станцией:


strComputer = "ws_name"
If WScript.Arguments.Count = 2 Then
strUser = WScript.Arguments.Item(0)
strPassword = WScript.Arguments.Item(1)
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer(strComputer, "root\cimv2", strUser, strPassword)
Set objCollection = objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'calc.exe'")
For Each objItem In objCollection
objItem.Terminate
Next
Set objService = Nothing
Set objCollection = Nothing
Set objLocator = Nothing
End If

и все же...если скрипт размещен на контроллере домена, в директории \\Контроллер_домена\SYSVOL\имя_домена\Policies\{A6C2CBB..-...}\Machine\Scripts\Startup , то к нему может иметь доступ любой пользователь => узнать пароль польователя, с правами которого он запускается:( Как все же "скрыть(зашифровать)" пароль в скрипте? Пусть этот метод и не соответствует жестким правилам безопасности, но хоть как-то это можно сделать...?Кто какие варианты может предложить? Подскажите пожалуйста... Ах, да... этот метод должен работать как на ХР, так и на 2000 осях(копирование файлов CScript.exe или WScript.exe допускается).

Изначальная идея VBскрипта- обновление версии антивируса DrWeb на клиентских машинах:

-Скрипт прописан в групповых политиках (Computer Configuration->Windows Settings->Scripts->Startup)

Краткий алгоритм скрипта:
1- Проверка установленной версии антивируса
2- Удаление старой версии антивируса(Завершение сервисов->Удаление службы->Удаление записей реестра->Удаление файлов)
3- Установка новой версии из собранного MSI пакета
4- Отправка отчета в виде текстового файла о всех удачных и не удачных действиях.

Конечно, проще всего, чтоб не заморачиваться по поводу безопасности можно было бы разместить этот скрипт на сервере и автоматичекси запускать его каждые 30 минут(шейдлером или своим скриптом) для кажой включенной машины в сети,а те машины, на которых он уже запускался- исключать из списка. Но тут опять для вас вопрос Высоко Уважаемые Господа системщики и программисты! Как получить список всех машин в сети и как проверить какие доступны на данный момент?

Всем кто поможет, ОГРОМНОЕ СПАСИБО...да , наверное, не только от меня, но и от всех посетителей форума, т.к. считаю эту идею скрипта актуальной:)
Не подумайте что прошу написать за меня., просто до этого с VB дела не имел:( Готовый скрипт обещаю выложить в форум и не без ваших усилий;)
Green2
Дата: 09.01.2008 20:55:57

blackangel> Изначальная идея VBскрипта- обновление версии антивируса
DrWeb на клиентских машинах:
Насколько я помню, достаточно просто запускать на клиенте скрипт, который
возмёт файлы обновлений антивируса и просто скопирует файлы в каталог на
локальном диске...
Файлы обновлений скачиваются вручную и ложатся в определённое место сети...
Зачем придумывать что то хитроумное, если всё просто.


Posted via ActualForum NNTP Server 1.4

Green2
Дата: 09.01.2008 20:57:32

У тебя много компьютеров в сети?


Posted via ActualForum NNTP Server 1.4

blackangel
Дата: 09.01.2008 21:01:09
Green2

blackangel> Изначальная идея VBскрипта- обновление версии антивируса
DrWeb на клиентских машинах:
Насколько я помню, достаточно просто запускать на клиенте скрипт, который
возмёт файлы обновлений антивируса и просто скопирует файлы в каталог на
локальном диске...
Файлы обновлений скачиваются вручную и ложатся в определённое место сети...
Зачем придумывать что то хитроумное, если всё просто.


Posted via ActualForum NNTP Server 1.4


нет, речь идет конечно же не о вирусных базах, а о версии ПО! например C 4.33 нужно перейти на 4.44. Чтоб это сделать нужно удалить старую версию и установить новую! Других вариантов увы Данилов не придумал :((
blackangel
Дата: 09.01.2008 21:02:44
Green2

У тебя много компьютеров в сети?


Posted via ActualForum NNTP Server 1.4


Около 300 :((
Biz©
Дата: 09.01.2008 22:55:35
2 автор:
откройте для себя обновление ПО через групповые политики ...
всё что вам нужно - оформлять всю процедуру удаления старого (если есть) и установки нового в виде msi и заряжать в виде установки нового по, а в дальнейшем - его апгрейда ...

зы: если имелись ввиду и недоменные омпутеры, то неясно к чему тут упоминаемый админ домена ...
MOA
Дата: 09.01.2008 23:46:20
>>много компьютеров в сети?
>Около 300
Такая штука не подойдёт? Если нужно активное обновление к-л приложения, тем более на ~300 машинах - ПМСМ, очень даже ;).
Для скриптов - не видно способа скрыть пароль, кроме использования в шедулере (на "сервере") чего-нибудь вроде psexed или самописной модификации.
Удачи!