Автор Тема: [Автоматизация] Установка OCS  (Прочитано 3145 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн gdu [?]

  • Новичок
  • *
  • Сообщений: 20
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Добрый день!!! подскажите как скопировать нужные конфиги в папку которую создает запускаемая программа по адресу:C:\Пользователи\Имя учетной записи\AppData\Local\Temp?  имя папки каждый раз изменяется (*.tmp)!!
Пытаюсь автоматизировать установку OCS агента, проблема заключается в том, что при запуске агента он создает папку с разными именами в userprofile/temp, пока удалось выполнить копирование в папку temp!!!! но как скопировать во вновь созданную папку с рандомным именем не пойму???? прошу помощи..
Код: AutoIt [Выделить]
#RequireAdmin
#include <GUIConstants.au3>
Opt("TrayIconDebug", 1)
Opt("WinWaitDelay", 0)
$pfiles = EnvGet("programfiles")
$app_name = ("OCS Inventory Agent 2017")
$temp_path = (@TempDir)
$podrazdelenie = "ГГ Фи упр|КУГСИН|ГГУ и тд..
DirCreate ($pfiles&"
\OCS Inventory Agent\")
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\admininfo.conf", $pfiles&"\OCS Inventory Agent\admininfo.conf")

GUICreate("
Проверка принадлежности компьютера", 320, 330)

GUICtrlCreateLabel ("
Фамилия, Имя, Отчество пользователя:",  10, 10, 400)
$combo_fio = GUICtrlCreateInput (RegRead ("
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "RegisteredOwner"), 10,30,300,20)
GUICtrlCreateLabel ("
текущая информация:   "&@LF&RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "RegisteredOwner"),  10, 55, 400)

GuiCtrlCreateGraphic(10, 90, 50, 50, 0)
GUICtrlSetGraphic(-1,$GUI_GR_COLOR, 0x646464)
GUICtrlSetGraphic(-1,$GUI_GR_LINE, 300, 0)
GUICtrlSetGraphic(-1,$GUI_GR_MOVE, 0, 90)
GUICtrlSetGraphic(-1,$GUI_GR_LINE, 300, 90)

GUICtrlCreateLabel ("
Подразделение, выберите из списка:",  10, 100, 400)
$combo_podr = GUICtrlCreateCombo (RegRead ("
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "RegisteredOrganization"), 10,120,300)
GUICtrlSetData(-1, $podrazdelenie, "
")
GUICtrlCreateLabel ("
текущая информация:   "&@LF&RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "RegisteredOrganization"),  10, 145, 400)


GUICtrlCreateLabel ("
Номер кабинета, где установлен данный компьютер:",  10, 190, 400)
$combo_kab = GUICtrlCreateInput (RegRead ("
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "Registeredtag"), 10,210,300,20)
GUICtrlCreateLabel ("
текущая информация:   "&@LF&RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "Registeredtag"),  10, 210, 300,20)

$Button_1 = GUICtrlCreateButton ( "
ОК", 60, 280, 70)
$Button_2 = GUICtrlCreateButton ( "
Выход", 190, 280, 70)

GUISetState ()



While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $Button_1
        $fio = GUICtrlRead ($combo_fio, 1)
        $podr = GUICtrlRead ($combo_podr, 1)
        $kab = GUICtrlRead ($combo_kab, 1)
        $check = MsgBox (54, "
OCS Inventory 2017", "Будет записана следующая информация:"&@LF&@LF&"ФИО сотрудника:"&@LF&$fio&@LF&@LF&"Подразделение:"&@LF&$podr&@LF&@LF&"Номер кабинета:"&@LF&$kab)
            If $check = 2 Then
                MsgBox (16, "
OCS Inventory 2017", "Установка прервана.")
                Exit
            ElseIf $check = 11 Then
                RegWrite ("
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "RegisteredOwner", "REG_SZ", $fio)
                RegWrite ("
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "RegisteredOrganization", "REG_SZ", $podr)
                RegWrite ("
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "Registeredtag", "REG_SZ", $kab)
               
                IniWrite ("
C:\programData\OCS Inventory NG\Agent\admininfo.conf", "OCS Inventory Agent", "TAG", $kab)
                GUIDelete()

            ExitLoop
            EndIf
        Case $msg = $GUI_EVENT_CLOSE
        MsgBox (16, "
OCS Inventory 2017", "Установка прервана.")
        Exit
        Case $msg = $Button_2
        MsgBox (16, "
OCS Inventory 2017", "Установка прервана.")
        Exit
    EndSelect
Wend

;
DirCreate ($temp_path)    (Эти файлы необходимо переместить с папку созданную в папке Temp запущенным инсталяторов агента OCS)

FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\OcsAgentSetup.exe", $temp_path&"\OcsAgentSetup.exe", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\cacert.pem", $temp_path&"\cacert.pem", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\service.ini", $temp_path&"\service.ini", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\proxy.ini", $temp_path&"\proxy.ini", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\server.ini", $temp_path&"\server.ini", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\agent.ini", $temp_path&"\agent.ini", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\local.ini", $temp_path&"\local.ini", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\ioSpecial.ini", $temp_path&"\ioSpecial.ini", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\advsplash.dll", $temp_path&"\advsplash.dll", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\InstallOptions.dll", $temp_path&"\InstallOptions.dll", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\KillProcDLL.dll", $temp_path&"\KillProcDLL.dll", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\nsExec.dll", $temp_path&"\nsExec.dll", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\services.dll", $temp_path&"\services.dll", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\SetACL.exe", $temp_path&"\SetACL.exe", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\System.dll", $temp_path&"\System.dll", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\UserInfo.dll", $temp_path&"\UserInfo.dll", 1)
;

; установка OCS-Агента, копирование SSL-сертификата сервера
SplashTextOn ("
Установка "&$app_name, @LF&"Происходит установка "&$app_name&@LF&"Пожалуйста, подождите..."&@LF&@LF&"- установка Агента...", 500, 120)
RunWait ($temp_path&"
\OcsAgentSetup.exe /s  /NOSPLASH /debug /now /server:ocs/ocsinventory")

FileMove ($temp_path&"
\cacert.pem", $pfiles&"\OCS Inventory Agent\cacert.pem", 1)
RunWait ("
net stop ""ocs inventory service""")

FileCopy ($temp_path&"
\server.ini", $pfiles&"\OCS Inventory Agent\server.ini", 1)
RunWait ("
net start ""ocs inventory service""")

;добавил строку ниже
FileCopy ($temp_path&"
\service.ini", $pfiles&"\OCS Inventory Agent\service.ini", 1)
RunWait ("
net start ""ocs inventory service""")
;
FileCopy ($temp_path&"
\proxy.ini", $pfiles&"\OCS Inventory Agent\proxy.ini", 0)
RunWait ("
net start ""ocs inventory service""")
;
FileCopy ($temp_path&"
\agent.ini", $pfiles&"\OCS Inventory Agent\agent.ini", 1)
RunWait ("
net start ""ocs inventory service""")
;
FileCopy ($temp_path&"
\local.ini", $pfiles&"\OCS Inventory Agent\local.ini", 1)
RunWait ("
net start ""ocs inventory service""")
;
FileCopy ($temp_path&"
\ioSpecial.ini", $pfiles&"\OCS Inventory Agent\ioSpecial.ini", 1)
RunWait ("
net start ""ocs inventory service""")
;
; копирование установочных файлов во временную папку
SplashTextOn ("
Установка "&$app_name, @LF&"Происходит установка "&$app_name&@LF&"Пожалуйста, подождите..."&@LF&@LF&"- копирование файлов...", 500, 140)

;

;удаление временной папки
DirRemove ($temp_path, 1)
SplashOff ()
MsgBox (64, "
Установка "&$app_name, @LF&"Установка "&$app_name&" успешно завершена!")


« Последнее редактирование: Январь 16, 2017, 00:12:18 от gdu »

Русское сообщество AutoIt

[Автоматизация] Установка OCS
« Отправлен: Январь 15, 2017, 16:42:36 »

Оффлайн gdu [?]

  • Новичок
  • *
  • Сообщений: 20

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Автоматизация] Установка OCS
« Ответ #1, Отправлен: Январь 16, 2017, 00:14:08 »
...вот часть скрипта
А где? ;) *click*

Все на месте.


Добавлено: Январь 16, 2017, 00:17:37
Добрый день!!! подскажите как скопировать нужные конфиги в папку которую создает запускаемая программа по адресу:C:\Пользователи\Имя учетной записи\AppData\Local\Temp?  имя папки каждый раз изменяется (*.tmp)!!
Пытаюсь автоматизировать установку OCS агента, проблема заключается в том, что при запуске агента он создает папку с разными именами в userprofile/temp, пока удалось выполнить копирование в папку temp!!!! но как скопировать во вновь созданную папку с рандомным именем не пойму???? прошу помощи..
Код: AutoIt [Выделить]
#RequireAdmin
#include <GUIConstants.au3>
Opt("TrayIconDebug", 1)
Opt("WinWaitDelay", 0)
$pfiles = EnvGet("programfiles")
$app_name = ("OCS Inventory Agent 2017")
$temp_path = (@TempDir)
$podrazdelenie = "ГГ Фи упр|КУГСИН|ГГУ и тд..
DirCreate ($pfiles&"
\OCS Inventory Agent\")
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\admininfo.conf", $pfiles&"\OCS Inventory Agent\admininfo.conf")

GUICreate("
Проверка принадлежности компьютера", 320, 330)

GUICtrlCreateLabel ("
Фамилия, Имя, Отчество пользователя:",  10, 10, 400)
$combo_fio = GUICtrlCreateInput (RegRead ("
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "RegisteredOwner"), 10,30,300,20)
GUICtrlCreateLabel ("
текущая информация:   "&@LF&RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "RegisteredOwner"),  10, 55, 400)

GuiCtrlCreateGraphic(10, 90, 50, 50, 0)
GUICtrlSetGraphic(-1,$GUI_GR_COLOR, 0x646464)
GUICtrlSetGraphic(-1,$GUI_GR_LINE, 300, 0)
GUICtrlSetGraphic(-1,$GUI_GR_MOVE, 0, 90)
GUICtrlSetGraphic(-1,$GUI_GR_LINE, 300, 90)

GUICtrlCreateLabel ("
Подразделение, выберите из списка:",  10, 100, 400)
$combo_podr = GUICtrlCreateCombo (RegRead ("
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "RegisteredOrganization"), 10,120,300)
GUICtrlSetData(-1, $podrazdelenie, "
")
GUICtrlCreateLabel ("
текущая информация:   "&@LF&RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "RegisteredOrganization"),  10, 145, 400)


GUICtrlCreateLabel ("
Номер кабинета, где установлен данный компьютер:",  10, 190, 400)
$combo_kab = GUICtrlCreateInput (RegRead ("
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "Registeredtag"), 10,210,300,20)
GUICtrlCreateLabel ("
текущая информация:   "&@LF&RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "Registeredtag"),  10, 210, 300,20)

$Button_1 = GUICtrlCreateButton ( "
ОК", 60, 280, 70)
$Button_2 = GUICtrlCreateButton ( "
Выход", 190, 280, 70)

GUISetState ()



While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $Button_1
        $fio = GUICtrlRead ($combo_fio, 1)
        $podr = GUICtrlRead ($combo_podr, 1)
        $kab = GUICtrlRead ($combo_kab, 1)
        $check = MsgBox (54, "
OCS Inventory 2017", "Будет записана следующая информация:"&@LF&@LF&"ФИО сотрудника:"&@LF&$fio&@LF&@LF&"Подразделение:"&@LF&$podr&@LF&@LF&"Номер кабинета:"&@LF&$kab)
            If $check = 2 Then
                MsgBox (16, "
OCS Inventory 2017", "Установка прервана.")
                Exit
            ElseIf $check = 11 Then
                RegWrite ("
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "RegisteredOwner", "REG_SZ", $fio)
                RegWrite ("
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "RegisteredOrganization", "REG_SZ", $podr)
                RegWrite ("
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion", "Registeredtag", "REG_SZ", $kab)
               
                IniWrite ("
C:\programData\OCS Inventory NG\Agent\admininfo.conf", "OCS Inventory Agent", "TAG", $kab)
                GUIDelete()

            ExitLoop
            EndIf
        Case $msg = $GUI_EVENT_CLOSE
        MsgBox (16, "
OCS Inventory 2017", "Установка прервана.")
        Exit
        Case $msg = $Button_2
        MsgBox (16, "
OCS Inventory 2017", "Установка прервана.")
        Exit
    EndSelect
Wend

;
DirCreate ($temp_path)    (Эти файлы необходимо переместить с папку созданную в папке Temp запущенным инсталяторов агента OCS)

FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\OcsAgentSetup.exe", $temp_path&"\OcsAgentSetup.exe", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\cacert.pem", $temp_path&"\cacert.pem", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\service.ini", $temp_path&"\service.ini", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\proxy.ini", $temp_path&"\proxy.ini", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\server.ini", $temp_path&"\server.ini", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\agent.ini", $temp_path&"\agent.ini", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\local.ini", $temp_path&"\local.ini", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\ioSpecial.ini", $temp_path&"\ioSpecial.ini", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\advsplash.dll", $temp_path&"\advsplash.dll", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\InstallOptions.dll", $temp_path&"\InstallOptions.dll", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\KillProcDLL.dll", $temp_path&"\KillProcDLL.dll", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\nsExec.dll", $temp_path&"\nsExec.dll", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\services.dll", $temp_path&"\services.dll", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\SetACL.exe", $temp_path&"\SetACL.exe", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\System.dll", $temp_path&"\System.dll", 1)
FileInstall ("
D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\UserInfo.dll", $temp_path&"\UserInfo.dll", 1)
;

; установка OCS-Агента, копирование SSL-сертификата сервера
SplashTextOn ("
Установка "&$app_name, @LF&"Происходит установка "&$app_name&@LF&"Пожалуйста, подождите..."&@LF&@LF&"- установка Агента...", 500, 120)
RunWait ($temp_path&"
\OcsAgentSetup.exe /s  /NOSPLASH /debug /now /server:ocs/ocsinventory")

FileMove ($temp_path&"
\cacert.pem", $pfiles&"\OCS Inventory Agent\cacert.pem", 1)
RunWait ("
net stop ""ocs inventory service""")

FileCopy ($temp_path&"
\server.ini", $pfiles&"\OCS Inventory Agent\server.ini", 1)
RunWait ("
net start ""ocs inventory service""")

;добавил строку ниже
FileCopy ($temp_path&"
\service.ini", $pfiles&"\OCS Inventory Agent\service.ini", 1)
RunWait ("
net start ""ocs inventory service""")
;
FileCopy ($temp_path&"
\proxy.ini", $pfiles&"\OCS Inventory Agent\proxy.ini", 0)
RunWait ("
net start ""ocs inventory service""")
;
FileCopy ($temp_path&"
\agent.ini", $pfiles&"\OCS Inventory Agent\agent.ini", 1)
RunWait ("
net start ""ocs inventory service""")
;
FileCopy ($temp_path&"
\local.ini", $pfiles&"\OCS Inventory Agent\local.ini", 1)
RunWait ("
net start ""ocs inventory service""")
;
FileCopy ($temp_path&"
\ioSpecial.ini", $pfiles&"\OCS Inventory Agent\ioSpecial.ini", 1)
RunWait ("
net start ""ocs inventory service""")
;
; копирование установочных файлов во временную папку
SplashTextOn ("
Установка "&$app_name, @LF&"Происходит установка "&$app_name&@LF&"Пожалуйста, подождите..."&@LF&@LF&"- копирование файлов...", 500, 140)

;

;удаление временной папки
DirRemove ($temp_path, 1)
SplashOff ()
MsgBox (64, "
Установка "&$app_name, @LF&"Установка "&$app_name&" успешно завершена!")




Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Оффлайн Dessan [?]

  • Сообщений: 136
  • Репутация: -2
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: [Автоматизация] Установка OCS
« Ответ #2, Отправлен: Январь 16, 2017, 07:28:53 »
(нажмите для показа/скрытия)
Пока знатоки Autoit обходят тему стороной, объясните мне, пожалуйста, какую именно функцию должен выполнять скрипт?Насколько я понял, сначала нужно включить файлы в скомпилированный скрипт и уже при его выполнении, скрипт копирует файлы в определённую директорию. Если всё верно - зачем их копировать в промежуточную папку Temp?Или это принципиальное условие?
Вот примеры из справки, которые я проверил и все они прекрасно работают:
(нажмите для показа/скрытия)
А не пробовали:
Код: AutoIt [Выделить]
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\*.*", $temp_path&"\*.*", 1)

мне кажется уйдёт половина кода скрипта.
(нажмите для показа/скрытия)

Оффлайн gdu [?]

  • Новичок
  • *
  • Сообщений: 20

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Автоматизация] Установка OCS
« Ответ #3, Отправлен: Январь 16, 2017, 09:01:56 »
Есть инсталятор OCS Agent.exe этот установщик необходимо автоматизировать, т.е при запуске OCS Agent.exe не вводить данные адреса сервера, пароля и тд... а подсунуть ini файлы с готовыми параметрами, загвостка возникает в том, что при запуске OCS Agent.exe он извлекает свои конфигурационные файлы во временную папку, куда по замыслу нужно подкинуть готовые конфиги со всеми нужными параметрами, проблема состоит в том,что при извлечении инсталятором конфигов он создает при каждом запуске папку с разными именами *.tmp. не вижу проблем копирования в статичную папку с определенным заранее именем. проблема в подмене конфигурационных файлов в папке темт.


Добавлено: Январь 16, 2017, 09:08:30
Код: AutoIt [Выделить]

; Убрал лишние строки.

#RequireAdmin
#include <GUIConstants.au3>
Opt("TrayIconDebug", 1)
Opt("WinWaitDelay", 0)
$pfiles = EnvGet("programfiles")
$app_name = ("OCS Inventory Agent 2017")
$temp_path = (@TempDir)
DirCreate ($temp_path)

;FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\OcsAgentSetup.exe", $temp_path&"\OcsAgentSetup.exe", 1)
;FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\cacert.pem", $temp_path&"\cacert.pem", 1)
;FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\server.ini", $temp_path&"\service.ini", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\OcsAgentSetup.exe", $temp_path&"\OcsAgentSetup.exe", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\cacert.pem", $temp_path&"\cacert.pem", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\service.ini", $temp_path&"\service.ini", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\proxy.ini", $temp_path&"\proxy.ini", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\server.ini", $temp_path&"\server.ini", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\agent.ini", $temp_path&"\agent.ini", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\local.ini", $temp_path&"\local.ini", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\ioSpecial.ini", $temp_path&"\ioSpecial.ini", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\advsplash.dll", $temp_path&"\advsplash.dll", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\InstallOptions.dll", $temp_path&"\InstallOptions.dll", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\KillProcDLL.dll", $temp_path&"\KillProcDLL.dll", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\nsExec.dll", $temp_path&"\nsExec.dll", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\services.dll", $temp_path&"\services.dll", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\SetACL.exe", $temp_path&"\SetACL.exe", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\System.dll", $temp_path&"\System.dll", 1)
FileInstall ("D:\disk_D\Autoit\source\OCS Agent 4.0.5.4\UserInfo.dll", $temp_path&"\UserInfo.dll", 1)
;

; установка OCS-Агента, копирование SSL-сертификата сервера (надо для деплоя пакетов)
SplashTextOn ("Установка "&$app_name, @LF&"Происходит установка "&$app_name&@LF&"Пожалуйста, подождите..."&@LF&@LF&"- установка Агента...", 500, 120)
RunWait ($temp_path&"\OcsAgentSetup.exe /NOSPLASH /debug /now /server:ocs/ocsinventory")

FileMove ($temp_path&"\cacert.pem", $pfiles&"\OCS Inventory Agent\cacert.pem", 1)
RunWait ("net stop ""ocs inventory service""")

FileCopy ($temp_path&"\server.ini", $pfiles&"\OCS Inventory Agent\server.ini", 1)
RunWait ("net start ""ocs inventory service""")

;добавил строку ниже
FileCopy ($temp_path&"\service.ini", $pfiles&"\OCS Inventory Agent\service.ini", 1)
RunWait ("net start ""ocs inventory service""")
;
FileCopy ($temp_path&"\proxy.ini", $pfiles&"\OCS Inventory Agent\proxy.ini", 0)
RunWait ("net start ""ocs inventory service""")
;
FileCopy ($temp_path&"\agent.ini", $pfiles&"\OCS Inventory Agent\agent.ini", 1)
RunWait ("net start ""ocs inventory service""")
;
FileCopy ($temp_path&"\local.ini", $pfiles&"\OCS Inventory Agent\local.ini", 1)
RunWait ("net start ""ocs inventory service""")
;
FileCopy ($temp_path&"\ioSpecial.ini", $pfiles&"\OCS Inventory Agent\ioSpecial.ini", 1)
RunWait ("net start ""ocs inventory service""")
;
; копирование установочных файлов во временную папку
SplashTextOn ("Установка "&$app_name, @LF&"Происходит установка "&$app_name&@LF&"Пожалуйста, подождите..."&@LF&@LF&"- копирование файлов...", 500, 140)

;

;удаление временной папки
DirRemove ($temp_path, 1)
SplashOff ()
MsgBox (64, "Установка "&$app_name, @LF&"Установка "&$app_name&" успешно завершена!")






 

« Последнее редактирование: Январь 16, 2017, 09:10:06 от gdu »

Русское сообщество AutoIt

Re: [Автоматизация] Установка OCS
« Ответ #3 Отправлен: Январь 16, 2017, 09:01:56 »

Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 669
  • Репутация: 112
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Автоматизация] Установка OCS
« Ответ #4, Отправлен: Январь 16, 2017, 13:13:34 »
Если имя папки не известно, но известно содержимое этой папки, тогда её можно найти, перебирая содержимое всех папок в директории Темп, например, ищем папку в которой содержится файл "agent.ini"
(нажмите для показа/скрытия)
если не достаточно одного файла для определения папки, то и  остальные можно дописать в условие поиска.
(нажмите для показа/скрытия)


« Последнее редактирование: Январь 16, 2017, 13:22:44 от ra4o »

Помечен как лучший ответ пользователем gdu Отправлен Январь 17, 2017, 09:25:59

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1204
  • Репутация: 170
  • Пол: Мужской
  • Windows7 (x64)
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: [Автоматизация] Установка OCS
« Ответ #5, Отправлен: Январь 16, 2017, 22:47:59 »
... создает папку с разными именами в userprofile/temp...

Вот пример определения temp-папки для OCSNG Windows Agent 2.3.0.0.
Код: AutoIt [Выделить]
#RequireAdmin
;~ #include <Array.au3>
#include <WinAPIProc.au3>
#include <WinAPISys.au3>

Local $aData, $iPID, $sDir, $aMem
Local $sProcess = 'OCS-NG-Windows-Agent-Setup.exe'
Local $sMyProgram = @ScriptDir & '\OCSNG-Windows-Agent-2.3.0.0\' & $sProcess
Local $sTempDir = StringRegExpReplace(@TempDir, '([^\wЁ-Яа-ё\s])', '\\$1') ; Экранируем возможные метасимволы в адресе

If (_WinAPI_GetVersion() < '6.0') And (@AutoItX64) Then Exit MsgBox(262144 + 16, 'Error!', _
        'Этот пример в 64-битной системе будет работать только в Windows Vista или более поздней версии.')
If Not ProcessExists($sProcess) Then $iPID = Run(FileGetShortName($sMyProgram)) ; Запускаем инсталятор (если такй процесс еще не запущен)
$iPID = ProcessWait($sProcess, 10)
If Not $iPID Then Exit

For $i = 0 To 10 ; Делаем 11 возможных попыток поиска модулей процесса в папке @TempDir
    $aData = _WinAPI_EnumProcessModules($iPID, $LIST_MODULES_32BIT) ; https://www.autoitscript.com/autoit3/docs/libfunctions/_WinAPI_EnumProcessModules.htm
;~ _ArrayDisplay($aData)
    If Not @error Then
        For $j = 1 To $aData[0][0]
            $sDir = StringRegExpReplace($aData[$j][1], '(' & $sTempDir & '\\[^\\]+).+', '\1')
            If @extended Then ExitLoop 2
            $sDir = ''
        Next
    EndIf
    Sleep(300)
Next

MsgBox(262144, 'Папка:', ($sDir ? $sDir : 'Oops :('))




Добавлено: Январь 16, 2017, 23:40:44
gdu, а что в вашем коде означает эта, не раз повторяющаяся, строка?
Код: AutoIt [Выделить]
RunWait ("net start ""ocs inventory service""")

« Последнее редактирование: Январь 16, 2017, 23:40:44 от Alofa, Причина: Объединение сообщений »

Оффлайн gdu [?]

  • Новичок
  • *
  • Сообщений: 20

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Автоматизация] Установка OCS
« Ответ #6, Отправлен: Январь 17, 2017, 09:16:21 »

gdu, а что в вашем коде означает эта, не раз повторяющаяся, строка?
Код: AutoIt [Выделить]
RunWait ("net start ""ocs inventory service""")

[/quote]

ожидание момента окончания работы программы, после чего продолжить выполнение скрипта,
далее удаление временной папки и появление информационного окна.
DirRemove ($temp_path, 1)
SplashOff ()
MsgBox (64, "Установка "&$app_name, @LF&"Установка "&$app_name&" успешно завершена!")

Русское сообщество AutoIt

Re: [Автоматизация] Установка OCS
« Ответ #6 Отправлен: Январь 17, 2017, 09:16:21 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
10 Ответов
16316 Просмотров
Последний ответ Январь 31, 2012, 16:44:25
от snoitaleR
13 Ответов
11366 Просмотров
Последний ответ Декабрь 02, 2013, 10:46:39
от Futurebear
6 Ответов
7231 Просмотров
Последний ответ Октябрь 18, 2013, 16:46:20
от Vovsla
0 Ответов
4383 Просмотров
Последний ответ Сентябрь 03, 2013, 16:11:53
от alex33
12 Ответов
10695 Просмотров
Последний ответ Июль 21, 2015, 19:25:32
от alex33
1 Ответов
2934 Просмотров
Последний ответ Декабрь 05, 2013, 12:50:13
от InnI
0 Ответов
6383 Просмотров
Последний ответ Декабрь 05, 2013, 14:53:00
от saturnus
21 Ответов
22091 Просмотров
Последний ответ Август 03, 2016, 05:40:22
от SharkyEXE
4 Ответов
1294 Просмотров
Последний ответ Январь 29, 2014, 11:54:55
от Ksaan
2 Ответов
10023 Просмотров
Последний ответ Июль 30, 2015, 10:51:54
от NetRanger