17.07.2007, 17:52 | #1 |
NavAx
|
автоматизация установки клиента Axapta
Всем добрый вечер.
Интересует вопрос автоматизированной установки клиента Axapta на рабочие станции домена. Суть в следующем: чтобы установить Axapta SP4 KR3 необходимо как минимум установить Axapta CIS 30, затем Axapta 30 SP4, и Axapta KR3. Руками - трудоемко, т.к. компьютеров с Axapta порядка сотни. Кто-нибудь делал из этого всего один .msi файл? Поделитесь пожалуйста мыслями. Спасибо. |
|
17.07.2007, 18:18 | #2 |
Злыдни
|
Формировали и пакет msi для развертывания (есть для этого программы), но не вижу я смысла в установке клиента на все машины. Равернули на одну станцию, сформировали рабочую директорию с набором файлов и копируйте.
Достаточно скрипта: Код: Dim DesktopPath, Shortcut Dim UserName, SDrive Dim WshShell, ObjEnv, Wscr Dim fso Dim VerCL, VerSRV Dim ProgPath, WorkPath, LnkPath, TagPath, CfgPath, DPath Dim oFolder, oFile, file Const ClientPath = "шара, где лежит клиент" Const DestPath = "%SYSTEMDRIVE%\Program Files\Navision\Axapta\Client\Bin" Const Cfg1 ="что-то -user=" --путь до конфигурациооного файла и параметр для имени, если нужно Set fso = createobject("Scripting.FileSystemObject") Set WshShell = CreateObject("WScript.Shell") Set ObjEnv = WshShell.Environment("Process") SDrive = ObjEnv("SYSTEMDRIVE") ProgPath = SDrive + "\Program Files\Navision\Axapta\Client\Bin" DPath = WshShell.ExpandEnvironmentStrings(DestPath) If (Not fso.FileExists(ProgPath & "\Ax32.exe")) Then If (Not fso.FolderExists(SDrive & "\Program Files\Navision")) Then fso.CreateFolder(SDrive & "\Program Files\Navision") End If If (Not fso.FolderExists(SDrive & "\Program Files\Navision\Axapta")) Then fso.CreateFolder(SDrive & "\Program Files\Navision\Axapta") End If If (Not fso.FolderExists(SDrive & "\Program Files\Navision\Axapta\Client")) Then fso.CreateFolder(SDrive & "\Program Files\Navision\Axapta\Client") End If If (Not fso.FolderExists(SDrive & "\Program Files\Navision\Axapta\Client\Bin")) Then fso.CreateFolder(SDrive & "\Program Files\Navision\Axapta\Client\Bin") End If fso.CopyFile (ClientPath & "\*.*"), DPath DesktopPath = WshShell.SpecialFolders("Desktop") TagPath = DPath & "\Ax32.exe" If (Not fso.FileExists(DesktopPath & "\Axapta.lnk")) Then Set Shortcut = WshShell.CreateShortcut(DesktopPath & "\Axapta.lnk") Shortcut.TargetPath = """" & TagPath & """" Shortcut.Arguments = Cfg1 Shortcut.WorkingDirectory = DPath Shortcut.IconLocation = (DPath & "\Ax32.exe,0") Shortcut.WindowStyle = 1 Shortcut.Save End If Else VerCL = fso.GetFileVersion(ProgPath & "\Ax32.exe") VerSRV = fso.GetFileVersion(ClientPath & "\Ax32.exe") If (VerSRV <> VerCL) Then set oFolder = fso.GetFolder(DPath) Set oFile = oFolder.Files For Each i In oFile file = oFolder.Path & "\" & i.Name fso.DeleteFile file, true Next fso.CopyFile (ClientPath & "\*.*"), DPath End If End If
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
17.07.2007, 22:46 | #3 |
Lean Six Sigma
|
Могу предложить ещё способ:
- Запуск батником нескольких самораспоковывающихся архивов + файлов с расширением reg для регистрации компонентов |
|
17.07.2007, 23:13 | #4 |
Участник
|
Цитата:
Цитата:
Правда, для работы батника понадобится psexec, 4nt и админские права на удаленной машине. |
|
|
За это сообщение автора поблагодарили: Roman777 (2), Viknik (1). |
18.07.2007, 08:55 | #5 |
NavAx
|
Цитата:
Сообщение от gl00mie
Полностью поддерживаю, с MSI больше мороки. Можно, конечно, воспользоваться установкой через групповую политику, но я лично написал банальный батник для удаленной (со своего компа) установки. При этом не просто копируются файлы клиента, но еще проверяется доступность указанной машины, наличие на ней предыдущей "установки" (по тому же пути) клиента и его полный снос, а также регистрация небходимых OCX и DLL и создание записей в реестре, чтобы нормально создавались сообщения в eventlog, и работал performance monitor. До кучи еще копируются необходимые шрифты, и в реестр импортируются данные для подставновки шрифтов, чтобы не было "крякозябр".
Правда, для работы батника понадобится psexec, 4nt и админские права на удаленной машине. Правильно ли я понимаю, что необходимо предварительно установить только на одну машину клиента с необходимым SP и KR, скопировать получившийся Bin в директорию Bin для батника? Можно немного поподробнее о запуске этого скрипта? |
|
18.07.2007, 10:01 | #6 |
Участник
|
Цитата:
Мне, правда, десятками за раз клиентов ставить не довелось, но батник легко подрихтовать, чтоб он лишнего не спрашивал и брал имя машины из ком.строки или из файла. Да, на счет performance monitor: для него на удаленной машине регистрируются счетчики COM-коннектора, но сам коннектор не регистрируется. Если это необходимо, то можно добавить его в эту строчку аналогично другим dll: Код: psexec \\%__host% cmd /c for %%a in ("%__client_dir%\bin\*.ocx" "%__client_dir%\bin\anameter.dll" "%__client_dir%\bin\smmaxol.dll") do regsvr32 /s %%a Последний раз редактировалось gl00mie; 18.07.2007 в 10:03. |
|
18.07.2007, 10:06 | #7 |
Злыдни
|
А я регистрацию компонент специально убрал из скрипта, т.к. оказалось, что для подавляющего числа сотрудников они не нужны (не используются в работе), а скрипт вызывается из logon-скрипта доменного. Т.ч. с правами админа мучаться не надо. При необходимости скрипт можно расширить до нужных потребностей )))
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
18.07.2007, 10:15 | #8 |
Участник
|
Цитата:
PS. В моем случае пользователи после 1С "жить не могли" без панельки внизу окна Axapta с кнопками на каждое открытое окно, а панелька шла как раз отдельным OCX'ом... Последний раз редактировалось gl00mie; 18.07.2007 в 10:18. |
|
18.07.2007, 10:53 | #9 |
Злыдни
|
Цитата:
Сообщение от gl00mie
Из моего скромного опыта: когда у "подавляющего числа сотрудников" есть админские права на локальной машине (а иначе регистрация компонент, запускаемая из logon-скрипта под их аккаунтами, не сработает) - вот тогда и начинаются настоящие мучения...
PS. В моем случае пользователи после 1С "жить не могли" без панельки внизу окна Axapta с кнопками на каждое открытое окно, а панелька шла как раз отдельным OCX'ом...
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
18.07.2007, 11:01 | #10 |
Administrator
|
А можно глупый вопрос непонимающего?
А есть смысл вообще устанавливать клиента на все компы? Не проще ли запускать Аксапту с расшаренной папки БЕЗ установки клиента? Единственное что придется сделать - это шрифты на все машины поставить Сразу оговорюсь - вопрос не касается 4.0
__________________
Возможно сделать все. Вопрос времени |
|
18.07.2007, 11:12 | #11 |
Злыдни
|
Ну если сетевой трафик резиновый, то проще. У меня были ситуации, когда Axapta работала, а файловый сервер был недоступен.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
18.07.2007, 11:32 | #12 |
Участник
|
Если нет необходимости регистрировать какие-то используемые клиентом компоненты, то оно, конечно, проще. Можно даже через DFS "раскидать" шару, откуда запускается клиент, на несколько физических серверов для повышения отказоустойчивости и распределения нагрузки по трафику.
|
|
20.07.2007, 13:58 | #13 |
NavAx
|
Выкладываю свой вариант:
Код: @ECHO OFF SETLOCAL SET CLIENTPATH=\\SERVER\Axapta\Axapta_30_CIS\Setup\Client SET DIRSP=\\SERVER\Axapta\DIRSP\bin.sp4 SET DIRLINK=\\SERVER\Axapta\Link set /p cname=Enter computer name: Ping -n 1 %cname% >Nul IF %ERRORLEVEL% NEQ 0 goto NPING net use \\%cname%\Admin$ /user:DOMAIN\Administrator IF %ERRORLEVEL% NEQ 0 goto EXIT psexec -i -s \\%cname% msiexec /i "%CLIENTPATH%\navision axapta client.msi" /qn ALLUSERS=2 IF %ERRORLEVEL% NEQ 0 goto DELSHARE psexec -i -s \\%cname% regedit /s "%CLIENTPATH%\2000.reg" xcopy "%DIRSP%\*.*" "\\%cname%\c$\Program Files\Navision\Client\Bin.sp4\" /q /e /y xcopy "%DIRLINK%\Axapta.lnk" "\\%cname%\c$\documents and settings\all users\Рабочий стол\" /y :DELSHARE net use \\%cname%\Admin$ /delete goto EXIT :NPING ECHO wrong computer name :EXIT pause |
|