Ситуация полностью ясна. Прикол в том, что нет сто-процентного продукта, через который можно было бы распространить любое ПО. Для себя я решил эту задачу на 90% тем, что на большинство программ писал установочные скрипты. Вот хорошее описание разных инталляторов (не только .msi): http://www.oszone.net/2747/. Сами скрипты совсем не сложные, около 2-3 строчек кода. Пример на .js:
Тихая установка Adobe Acrobate 7.0 prof:
var WshShell=WScript.CreateObject("WScript.Shell");
WshShell.Run("\"\\\\server03\\install\\Adobe\\Adobe Acrobat 7.0 Professional\\setup\\Adobe Acrobat 7.0 Professional\\AcroPro.msi\" /qb-! REBOOT=ReallySupress", 5, true);
Тихая установка 7-zip:
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("\"\\\\server03\\Install\\7zip\\4.57\\7z457.exe\" /S", 7, true);
Тихая установка Unlocker:
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("\"\\\\server03\\Install\\Unlocker\\1.8.5\\unlocker1.8.5.exe\" /S", 5, true);
Тихая установка программы TranslateIt:
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("\\\\server03\\install\\TranslateIt\\6.2.build3\\ti_setup.exe /VERYSILENT /SP-", 7, true);
А вот поинтереснее. Тихая установка MSSQL Server 2005 Express Edition на диск D:
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("msiexec /i \"\\\\server03\\Install\\SQLServer2005Enterprise\\Servers\\Setup\\sqlncli.msi\" /passive /norestart", 7, true);
WshShell.Run("\"\\\\server03\\Install\\SQLServer2005ExpressEdition\\SQLEXPR.EXE\" /q /qb ADDLOCAL=ALL INSTALLSQLDIR=\"c:\\Program files\\SqlServerExpress2005\" INSTALLSQLDATADIR=\"d:\\SqlExpress2005_data\" ", 7, true);
Ну, это тривиальные методы тихой установки. Почитай в доках по ссылке выше, там есть более сложные варианты.
А вообще, моё личное мнение — распространение ПО через AD и App-V — отстой. Всё приходится делать самому, если хочешь, чтобы это было сделано правильно. Дело в том, что прираспространении через AD и app-v вы не узнаете — поставилось ли ПО или нет, а когда пишите свои скрипты — можно после установки и проверить — а получилось ли поставить и дать знать об этом администратору. Этот метод для терпеливых (эти две строчки иногда большой кровью даются), зато потом распространение ПО идёт просто в лёт.
Пусть вас не вводит в заблуждение ^,$. В регулярных выражениях применяются ключи, для интерпретации многострочного поиска. Эти ключи корректно распознают многострочный текст. Поэтому не нужно указывать символ перевода строки и/или возврата каретки. Но если хочется их использовать, то нужно писать "/search[/n/r][/n/r]/", т.к. разные редакторы в разной последовательности используют эти символы. В конце концов и исходный файл со списком сайтов тоже можно представить в разных форматах, даже в XML, тогда ни регулярные выражения ни разбиения на массивы не помогут.
А про несколько пользователей ;) я почему-то так и подумал, что будет этот вопрос, но честно отвечу — не знаю. Таким образом, наверное, никак. Вы, наверное, бухгалтерию так настраиваете, а может даже 1С? Был такой случай, мозгового штурма не устраивал, но до сих пор лично я не вижу нормального решения.
Тихая установка Adobe Acrobate 7.0 prof:
var WshShell=WScript.CreateObject("WScript.Shell");
WshShell.Run("\"\\\\server03\\install\\Adobe\\Adobe Acrobat 7.0 Professional\\setup\\Adobe Acrobat 7.0 Professional\\AcroPro.msi\" /qb-! REBOOT=ReallySupress", 5, true);
Тихая установка 7-zip:
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("\"\\\\server03\\Install\\7zip\\4.57\\7z457.exe\" /S", 7, true);
Тихая установка Unlocker:
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("\"\\\\server03\\Install\\Unlocker\\1.8.5\\unlocker1.8.5.exe\" /S", 5, true);
Тихая установка программы TranslateIt:
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("\\\\server03\\install\\TranslateIt\\6.2.build3\\ti_setup.exe /VERYSILENT /SP-", 7, true);
А вот поинтереснее. Тихая установка MSSQL Server 2005 Express Edition на диск D:
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("msiexec /i \"\\\\server03\\Install\\SQLServer2005Enterprise\\Servers\\Setup\\sqlncli.msi\" /passive /norestart", 7, true);
WshShell.Run("\"\\\\server03\\Install\\SQLServer2005ExpressEdition\\SQLEXPR.EXE\" /q /qb ADDLOCAL=ALL INSTALLSQLDIR=\"c:\\Program files\\SqlServerExpress2005\" INSTALLSQLDATADIR=\"d:\\SqlExpress2005_data\" ", 7, true);
Ну, это тривиальные методы тихой установки. Почитай в доках по ссылке выше, там есть более сложные варианты.
А вообще, моё личное мнение — распространение ПО через AD и App-V — отстой. Всё приходится делать самому, если хочешь, чтобы это было сделано правильно. Дело в том, что прираспространении через AD и app-v вы не узнаете — поставилось ли ПО или нет, а когда пишите свои скрипты — можно после установки и проверить — а получилось ли поставить и дать знать об этом администратору. Этот метод для терпеливых (эти две строчки иногда большой кровью даются), зато потом распространение ПО идёт просто в лёт.
Поищи в гугле тему "Тихая установка программ"