AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
NAV
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.07.2007, 17:52   #1  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
? автоматизация установки клиента Axapta
Всем добрый вечер.
Интересует вопрос автоматизированной установки клиента Axapta на рабочие станции домена.
Суть в следующем: чтобы установить Axapta SP4 KR3 необходимо как
минимум установить Axapta CIS 30, затем Axapta 30 SP4, и Axapta KR3. Руками - трудоемко, т.к. компьютеров с Axapta порядка сотни.
Кто-нибудь делал из этого всего один .msi файл?
Поделитесь пожалуйста мыслями.
Спасибо.
Старый 17.07.2007, 18:18   #2  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Формировали и пакет 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  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
Могу предложить ещё способ:
- Запуск батником нескольких самораспоковывающихся архивов + файлов с расширением reg для регистрации компонентов
__________________
Viacheslav Nefedov, http://www.nefedov.net, http://restock.guru/
Старый 17.07.2007, 23:13   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Roman777 Посмотреть сообщение
Интересует вопрос автоматизированной установки клиента Axapta на рабочие станции домена. Суть в следующем: чтобы установить Axapta SP4 KR3 необходимо как минимум...
Кто-нибудь делал из этого всего один .msi файл?
Цитата:
Сообщение от KiselevSA Посмотреть сообщение
Формировали и пакет msi для развертывания (есть для этого программы), но не вижу я смысла в установке клиента на все машины. Равернули на одну станцию, сформировали рабочую директорию с набором файлов и копируйте.
Полностью поддерживаю, с MSI больше мороки. Можно, конечно, воспользоваться установкой через групповую политику, но я лично написал банальный батник для удаленной (со своего компа) установки. При этом не просто копируются файлы клиента, но еще проверяется доступность указанной машины, наличие на ней предыдущей "установки" (по тому же пути) клиента и его полный снос, а также регистрация небходимых OCX и DLL и создание записей в реестре, чтобы нормально создавались сообщения в eventlog, и работал performance monitor. До кучи еще копируются необходимые шрифты, и в реестр импортируются данные для подставновки шрифтов, чтобы не было "крякозябр".
Правда, для работы батника понадобится psexec, 4nt и админские права на удаленной машине.
Вложения
Тип файла: rar ax-3-client-inst.rar (2.2 Кб, 127 просмотров)
За это сообщение автора поблагодарили: Roman777 (2), Viknik (1).
Старый 18.07.2007, 08:55   #5  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Полностью поддерживаю, с MSI больше мороки. Можно, конечно, воспользоваться установкой через групповую политику, но я лично написал банальный батник для удаленной (со своего компа) установки. При этом не просто копируются файлы клиента, но еще проверяется доступность указанной машины, наличие на ней предыдущей "установки" (по тому же пути) клиента и его полный снос, а также регистрация небходимых OCX и DLL и создание записей в реестре, чтобы нормально создавались сообщения в eventlog, и работал performance monitor. До кучи еще копируются необходимые шрифты, и в реестр импортируются данные для подставновки шрифтов, чтобы не было "крякозябр".
Правда, для работы батника понадобится psexec, 4nt и админские права на удаленной машине.
Этот вариант подходит.
Правильно ли я понимаю, что необходимо предварительно установить только на одну машину клиента с необходимым SP и KR, скопировать получившийся Bin в директорию Bin для батника?
Можно немного поподробнее о запуске этого скрипта?
Старый 18.07.2007, 10:01   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Roman777 Посмотреть сообщение
Правильно ли я понимаю, что необходимо предварительно установить только на одну машину клиента с необходимым SP и KR, скопировать получившийся Bin в директорию Bin для батника?
Да, но если быть точным, я брал весь каталог с установленным клиентом (стандартные каталоги appl, bin, log, share, std, из которых файлы только в bin и share), а также файлы шрифтов для штрих-кодов, которые ставятся с Аксаптой, и рассовывал это по указанным каталогам.
Цитата:
Сообщение от Roman777 Посмотреть сообщение
Можно немного поподробнее о запуске этого скрипта?
Во-первых, надо поставить указанные утилиты, в частности, psexec используется для удаленого запуска regsvr32 (регистрация компонент OCX) и regedit (импорт настроек подстановки шрифтов), а сам батник сильно завязан на функции, присутствующие в 4nt. В начале скрипта настраиваются переменные, указывающие на исходные и конечные каталоги:
  • __src_axapta - каталог, содержащий подкаталог client, в котором должны лежать файлы клиента Axapta;
  • __dst_axapta - каталог, куда будут копироваться файлы клиента Axapta; по умолчанию задан в виде c$\axapta, т.е. с использованием стандартной шары c$ (корень диска c:\); вместе с netbios-именем клиентского компа должен давать полный unc-путь, типа \\host\c$\axapta;
  • __src_files - каталог, содержащий вспомогательные файлы (в данном случае файл 2000.reg, ярлычок Axapta.lnk и шрифты в подкаталоге %__src_files%\fonts); этот путь берется по умолчанию из пути, откуда запущен батник, и настраивать его не надо.
  • __src_ax32 - путь к файлу ax32.exe на локальной машине, используемый для определения "древности" версии уже установленного на удаленной машине клиента по сравнению с устанавливаемой версией - если, конечно, будет обнаружен уже установленный клиент; настраивается автоматом с использованием __src_axapta.
  • __client_dir - каталог, куда ставится клиент, в том виде, как он будет выглядеть на машине клиента, например, c:\axapta; предполагается, что __dst_axapta указывается через стандартные шары дисков, поэтому значение __client_dir автоматом создается из __dst_axapta путем замены "$" на ":".
Таким образом, в батнике в общем случае надо настроить только путь __src_axapta. После запуска запрашивается netbios-имя или ip клиентской машины, проверяется ее доступность по сети и доступность шары admin$ на ней (без этого psexec не будет работать, и не получится скопировать шрифты), проверяется наличие уже установленного клиента и то, что его версия старее устанавливаемой (иначе запрашивается дополнительное подтверждение), ну и собственно начинается установка. Если был обнаружен уже установленный клиент, то до установки удаляется регистрация его компонент (regsvr32 /u) и полностью сносится его каталог (%__dst_axapta%\client). Настройки подстановки шрифтов на w2k начинают дейтсвовать сразу, а на wxp/w2k3 понадобится перезагрузка.
Мне, правда, десятками за раз клиентов ставить не довелось, но батник легко подрихтовать, чтоб он лишнего не спрашивал и брал имя машины из ком.строки или из файла.
Да, на счет 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  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
А я регистрацию компонент специально убрал из скрипта, т.к. оказалось, что для подавляющего числа сотрудников они не нужны (не используются в работе), а скрипт вызывается из logon-скрипта доменного. Т.ч. с правами админа мучаться не надо. При необходимости скрипт можно расширить до нужных потребностей )))
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 18.07.2007, 10:15   #8  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от KiselevSA Посмотреть сообщение
А я регистрацию компонент специально убрал из скрипта, т.к. оказалось, что для подавляющего числа сотрудников они не нужны (не используются в работе), а скрипт вызывается из logon-скрипта доменного. Т.ч. с правами админа мучаться не надо.
Из моего скромного опыта: когда у "подавляющего числа сотрудников" есть админские права на локальной машине (а иначе регистрация компонент, запускаемая из logon-скрипта под их аккаунтами, не сработает) - вот тогда и начинаются настоящие мучения...

PS. В моем случае пользователи после 1С "жить не могли" без панельки внизу окна Axapta с кнопками на каждое открытое окно, а панелька шла как раз отдельным OCX'ом...

Последний раз редактировалось gl00mie; 18.07.2007 в 10:18.
Старый 18.07.2007, 10:53   #9  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Из моего скромного опыта: когда у "подавляющего числа сотрудников" есть админские права на локальной машине (а иначе регистрация компонент, запускаемая из logon-скрипта под их аккаунтами, не сработает) - вот тогда и начинаются настоящие мучения...

PS. В моем случае пользователи после 1С "жить не могли" без панельки внизу окна Axapta с кнопками на каждое открытое окно, а панелька шла как раз отдельным OCX'ом...
Согласен. Админами они не были, а всякие украшательства им не были показаныи остались не востребованы )))
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 18.07.2007, 11:01   #10  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,286 / 3494 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
А можно глупый вопрос непонимающего?
А есть смысл вообще устанавливать клиента на все компы?
Не проще ли запускать Аксапту с расшаренной папки БЕЗ установки клиента?
Единственное что придется сделать - это шрифты на все машины поставить
Сразу оговорюсь - вопрос не касается 4.0
__________________
Возможно сделать все. Вопрос времени
Старый 18.07.2007, 11:12   #11  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Не проще ли запускать Аксапту с расшаренной папки БЕЗ установки клиента?
Ну если сетевой трафик резиновый, то проще. У меня были ситуации, когда Axapta работала, а файловый сервер был недоступен.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 18.07.2007, 11:32   #12  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
А есть смысл вообще устанавливать клиента на все компы? Не проще ли запускать Аксапту с расшаренной папки БЕЗ установки клиента?
Если нет необходимости регистрировать какие-то используемые клиентом компоненты, то оно, конечно, проще. Можно даже через DFS "раскидать" шару, откуда запускается клиент, на несколько физических серверов для повышения отказоустойчивости и распределения нагрузки по трафику.
Старый 20.07.2007, 13:58   #13  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
Lightbulb
Выкладываю свой вариант:
Код:
@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
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Какие порты мне необходимо открыть на циске для axapta, для тонкого клиента. Maksim13 DAX: Администрирование 6 06.03.2006 12:54
Не могу запустить Axapta после установки EDS DAX: Функционал 8 09.08.2003 13:46
Создание клиента/поставщика в Axapta 3 soin DAX: Функционал 13 01.08.2003 13:16
После установки Axapta 2.5 и SP 3 Leon DAX: Администрирование 1 09.12.2002 14:13
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:58.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.