|
|
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
ручками: Панель управления -> Программы -> Включение и отключение компонентов Windows В окне Компоненты Windows: Нашел компонент, проверил есть ли галка Если нет, поставил нажал OK. Ну и ждем, бывает долго, пока установится. Про DISM я понял: Deployment Image Servicing and Management (DISM) API cmd-вариант: Включение и отключение компонентов Windows с помощью DISM (C API буду разбираться однозначно, тем более там есть CallBack чтоб отслеживать Progress, в принципе то что надо). Но DISM на висте например нету (по крайней мере штатно). В XP была sysocmgr (визуально делает то что делаешь из панели управления). Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. А есть ли аналог для Vista-Win10? Есть такая штука (вызывает окно компонентов Win - как из панели управления): Код: plaintext 1. 2. 3. А м.б. кто знает у нее параметры командной строки есть? Есть еще OCSetup.exe и pkgmgr.exe но оно походу вообще без вменяемого GUI, а GUI как бы надо, ибо процесс не секундный. Есть какие соображения? Оптимальный вариант что я хочу (коль я задал вопрос в "Windows"): optionalfeatures.exe с параметрами cmd Только где они? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2017, 16:55 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Госпидя ...Посмотреть: Код: plaintext Включить: Код: plaintext 1. Выключить: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2017, 09:29 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, С DISM все понятно, господь ни причем. Я пока что освоил API (нафиг cmd, я программу пишу, если есть нормальные API). Будет настроение, выложу здесь: 20269403 несколько ф-ций. И DISM походу родная система на самых новых OS, типа Win10, или Server 2012R2 (16-й пока не глядел но очевидно что там OK). Так что путь верный. Но DISM-а нету на висте, и черт бы с ней, подыхающая давно сдохшая OS, срок оф. поддержки кончается через месяц. но как выяснилось штатно нету и на Win7 т.е. утилита dism.exe как бы есть в System32 но сама dismapi.dll запрятана куда-то в System32\CompatTel (dism.exe это может и знает) и по дефолту прога ее оттуда не load-ит поэтому толку от него на 7-ке на произвольном компе мало. проверял. Другой какой-то инструмент еще должен быть. Который бы работал на Виста и Win7. Ты ж не будешь туда инсталлить Dims за-ради автоматической установки пары Win компонентов. optionalfeatures.exe, но у нее не вижу cmd-параметров (возможно их нет). Но она запускает некого визарда, а вот у того возможно есть. По логике должны быть какие-то еще API под это дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2017, 16:52 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Другой какой-то инструмент еще должен быть. Который бы работал на Виста и Win7. Ты ж не будешь туда инсталлить Dims за-ради автоматической установки пары Win компонентов."Когда вы говорите, Иван Васильевич ..." Я, мопвашу ять, последние несколько месяцев занимаюсь тем, что делаю кастомный дистрибутив 6.1 (Win7/Server 2008 R2). Инструментов всего два: 1. imagex 2. dism Первый - да, надо сделать административную точку WAIK-а и забрать оттуда exe-файл. Второй - штатный компонент системы. В Vista есть какие-то ньюансы с pkgmgr и прочими утилитами, но начиная с семёрки dism - универсальный солдат. Поэтому (ничего личного) учитесь формулировать вопрос: не "как изменить состав компонентов", а "как использовать DISM API ". P.S. Можете по рабоче-крестьянски забрать каталог DISM-а из всё того же WAIK-а от десятки спокойно обслуживать им любую систему от семёрки и старше. Может и на висте будет работать, но этого я даже знать не хочу. P.P.S. Есть ньюансы связанные с очисткой образа, но изменение состава пакетов и фич - базовый функционал, существующий с 2009 год (Windows 7 без SP1). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2017, 04:53 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, ответ прочитал, сказать что есть. Отвечу чуть позже, сегодня-завтра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2017, 14:45 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Был неправ насчёт DISM API - доступно только в ADK (Win8+). Как обычно, выручил правильно сформулированный вопрос гуглу . Ответ почти совпадает с моим предложением. ~740Кб для x86 приложения... 2.Copy the following binaries to the matching architecture folder from step 1 that contains Loadstate.exe: •dismapi.dll •api-ms-win-downlevel-advapi32-l1-1-1.dll •api-ms-win-downlevel-kernel32-l1-1-0.dll •api-ms-win-downlevel-kernel32-l2-1-0.dll •api-ms-win-downlevel-ole32-l1-1-1.dll •api-ms-win-downlevel-user32-l1-1-1.dll •api-ms-win-downlevel-version-l1-1-0.dll ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2017, 17:34 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, По поводу DISM. С самими API полностью разобрался. Вот здесь тест-проект выложил (VB.Net). 20279975 (соответственно то чего хотел сделал а мне нужно установка FaxServicesClientPackage на НЕсервере и FaxServiceRole+FaxServiceConfigRole+DesktopExperience на СЕРВЕРЕ). на Win10 x64, Win8.1 x64 Win 2012R2 все работает (64-битный код). 32-битный скомпилировал, но проверить не на чем, будем считать что на Win8-Win10 все работает. А вот с Win7 Ж походу полная. у меня на Win7 x86 есть в System32/CompatTel но не уверен о его родном происхождении я могу конечно этот путь дописать (внутри программы) Get/ SetEnvironmentVariable ("Path", varValue). но во первых не могу поручиться за этот путь, во вторых там есть другая Ж и очень большая: в Win7 не работает Код: vbnet 1. ни через API, ни через dism.exe (87 ошибка - не поддерживается) Причем установка ADK этой проблемы не решает. Извратиться видимо можно: DismGetFeatureParent (цепочки и деревья), но стоит ли игра свеч при таком количестве проблем. Я бы это сформулировал как Dism на Win7 НЕ поддерживается, ну не решение это для <=Win7. Вот собственно по энтой причине я и задал вопрос именно здесь. Есть ли какая волшебная cmd, которая устанавливает "фичу" на Win7 и Висте (НЕ DISM). А еще есть Win2008R2, который ты упомянул, и если на Win7 "факс" установлен штатно, то роли на сервере по дефолту ни фига не установлены, а Win2008R2 достаточно популярен. авторВ окне Компоненты Windows: Нашел компонент, проверил есть ли галка Если нет, поставил нажал OK. Ну и ждем, Progress он кстати на Win7 не показывает, но что-то же показывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2017, 08:03 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Дмитрий77...Поскипал плач Ярославны. Если не работает установка зависимых компонент (а в семёрке она не работает), значит надо составить список и скормить его циклу. P.S. Вот в который раз убеждаюсь, что не надо заниматься непрофильной деятельностью: лень готовить рабочую среду - пропишите в требованиях всё, что должно быть и не продолжайте установку, пока человек не сделает то, что не хотите делать вы. P.P.S. А ещё на семёрке dism не умеет rebase ... Вот где ужас-то ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2017, 12:55 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovзначит надо составить список и скормить его циклу. Список составить как бы можно. DismGetFeatureParent. В общем случае это какая ни какая но рекурсия с ветвлением "в неправильном направлении". А последовательность скармливания роль играет? Если пофиг в какой, то еще терпимо. А если надо устанавливать строго Parent -> потом Child то задолбаешься список "сортировать". Basil A. Sidorovлень готовить рабочую среду - пропишите в требованиях всё, что должно быть и не продолжайте установку, пока человек не сделает то, что не хотите делать вы. Видимо так и сделаю. На Win7/Vista как вариант (хотя этот вариант перезагрузки сразу может потребовать). MsgBox (Компонент отсутствует. Хотите установить ручками?) ДА -> ShellAndWait (optionalfeatures.exe либо rundll32.exe appwiz.cpl RunOCMW) НЕТ (либо не поставил галку и не установил)-> Msgbox OKOnly. (Компонент все еще отсутствует. Можете установить его позже.) Basil A. Sidorovна семёрке dism не умеет rebase ... Вот где ужас-то ... К моему вопросу как это касается? Basil A. Sidorovлень готовить рабочую среду Я думаю что я пока забью. Да, занимаюсь фигней, вместо чтоб писать прогу дальше. Конечно лень. По хорошему чтоб все это оттачивать надо все возможные операционки тестировать. И их тестово устанавливать (причем они еще делятся на Win32 и x64). Догадываешься сколько времени? У меня этот вопрос решен только для XP/2003, после чего много лет назад забил, не обнаружив sysocmgr на Висте (код я привел в первом посте, sysocmgr кстати очень грамотно и красиво все ставит). Вот счас считай сделал для Win8-10;2012-2016 (через Dism). А Vista/7/2008/2008R2 соответственно в пролете. Из этого древнего набора у меня есть только установленные Vista-64 SP2(в которой обновления кстати вообще не работают MS забил я так понимаю?) и Win7-32. Чтоб этим грамотно заняться, надо как минимум установить 2008R2, P.S. На Висте кстати вопрос в принципе в моем случае не решаем. Заколебешься Там нет FaxServicesClientPackage, там есть FaxServicesClientPro, FaxServicesClientUltimate (в зависимости от сборки) и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2017, 18:40 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
И сдается мне, что для Win7 и Висты родной путь: Код: vbnet 1. Прогресс оно не показывает, но исправно ждет завершения (если со /Start), посему можно крутить Fake-Progress(показывать "котиков"). Если без /norestart -то может запросить restart в неподходящий момент (рестарт пусть предлагается в конце работы инсталлятора продукта), насчет quiet - не знаю, оно ж и так ничего не показывает. Здесь вопросы, если уж быть аккуратным: 1) На конкретно Висте нет FaxServicesClientPackage, есть FaxServicesClient Pro ,FaxServicesClient Ultimate . Как вычислить конкретное имя пакета, если начало названия я знаю. Где их имена? в реестре хранятся? 2) pkgmgr разбирается с пакетами, которые "parent"? 3) не могу понять что мне даст unattend XML (кроме случая когда пакетов несколько) 4) даст ли что-то утилита OCSetup.exe? Сверх того что делает pkgmgr? Ощущение что то же самое (со start /w естественно) 5) GUI "системное" там никак не выжать из них (чтоб без "котиков")? Хотя сдается мне что "системное GUI" -это optionalfeatures.exe (кот. вызывается из панели управления со списками галочек). Он вызывает окно "Windows выполняет изменение функций. Ето может занять несколько минут", которое если прибить optionalfeatures.exe из диспетчера задач тоже прибивается, думаю это его окно, а командной строки у optionalfeatures.exe судя по всему нет (только нажатием кнопки OK после "конфигурирования ручками"). Ну и открытый вопрос про Win2008/2008R2 тогда. Ой, неохота их устанавливать, особенно тот кот. без R2 (аля виста), пока отложу этот вопрос. Вот еще нарыл: Different ways for installing Windows features on the command line ServerManager module ? Но сдается мне с 2008/2008R2 без их установки не разобраться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2017, 00:10 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Дмитрий77И сдается мне, что для Win7 и Висты родной путь: Код: vbnet 1. А вот и нет (на Win7): Код: vbnet 1. А в логе все тот же DISM, в частности накалякано: Код: vbnet 1. 2. 3. Короче сделал я эту хрень под Win7 и заочно видимо под 2008R2: 20286097 Но повозиться пришлось. Basil A. Sidorov базовый функционал, существующий с 2009 год (Windows 7 без SP1). Basil A. SidorovБыл неправ насчёт DISM API - доступно только в ADK (Win8+). Я думаю (надеюсь) что все-таки был прав: Обзор DISM (система обслуживания образов развертывания и управления ими) Версия DISM для Windows 7 имеется в операционных системах Windows 7 и Windows PE 3.0, либо ее можно установить с помощью пакета автоматической установки Windows (Windows AIK) или предустановочного набора OPK (Windows OPK) для Windows 7. Или хочешь сказать, что dism.exe без dismapi.dll работать будет? Я предполагаю что dism на Win7/2008R2 есть штатно в папке System32/CompatTel. Опрос чтоль сделать отдельным топиком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2017, 06:16 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Список составить как бы можно. DismGetFeatureParent. В общем случае это какая ни какая но рекурсия с ветвлением "в неправильном направлении". А последовательность скармливания роль играет? Если пофиг в какой, то еще терпимо. А если надо устанавливать строго Parent -> потом Child то задолбаешься список "сортировать".Не надо делать в рантайме то, что успешно можно захардкодить. Если я хочу, чтобы на Windows 7 Pro были (только) Шахматы, Маджонг, Сапёр, Косынка и Солитёр, то это делается очень просто: Код: plaintext 1. 2. 3. 4. 5. В вашем случае смотрится состояние требуемой фичи - если уже включено, то ничего не делаем. Иначе смотрим родительскую фичу: если включена - включаем требуемую. Если выключена - запускаем оптимальную процедуру включения нужной. Последовательность оптимального включения определяется разово и насмерть кодируется под каждую поддерживаемую систему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 13:02 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Оно? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 13:14 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovВ вашем случае смотрится состояние требуемой фичи - если уже включено, то ничего не делаем. Иначе смотрим родительскую фичу: если включена - включаем требуемую. Если выключена - запускаем оптимальную процедуру включения нужной. Последовательность оптимального включения определяется разово и насмерть кодируется под каждую поддерживаемую систему. 1) Родительских фич в общем случае может быть несколько 2) Включение родительской фичи в общем случае не гарантирует что включатся все дочерние (в случае с играми -ДА, поэтому и надо убирать "лишние"), с галками в дереве "фичей" поиграться и ясно что depends on... (из панели управления). В общем случае оптимальный алгоритм: Составить список всех НЕвключенных родительских фич (исключая повторения) + своя фича в конце, причем любая родительская всегда стоит впереди дочерней и скормить этот список в Dism -одной командой. Все. Издержки состоят в том, что в твоем примере установятся все игры, а не только 3 которые хочешь. Для моего случая издержек я смотрел если и будут то минимальные, да и пофиг. Поэтому все OK. Уже сделал как писал выше. Замучаешься хардкодить, тем более для "всех поддерживаемых". Достаточно знать имя твоей фичи для "поддерживаемых", а ну как родительские по разному называться будут. И если с играми цепочка проста, то попробуй для сервера какую-нибудь хитрую "роль" захардкодить, напр. для интересуемой меня "FaxServiceRole" там такое ветвистое дерево из "родителей" получается. С этим ясно короче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 03:58 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov Оно? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Оно да не оно. Я категорически не хочу это смешивать с disnapi.dll + downlevel-API выдернутыми из ADK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 04:43 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Спасибо, как раз пригодилось) Хорошо хоть гугл выдал этот форум) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 09:50 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Я категорически не хочу это смешивать с disnapi.dll + downlevel-API выдернутыми из ADK.Не надо демонизировать разделяемые библиотеки - WinAPI (VS какой-то древней версии) прекрасно используется приложениями, собранными компиляторами любых языков и версий. DismAPI.dll ничем не отличается от прочих. P.S. Я посмотрел экспорты DismCore & Co - вполне обычные COM-серверы, насколько я понимаю. Единственная причина, которая мешает использовать их самостоятельно - отсутствие документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2017, 09:22 |
|
||
|
Установить "компонент Windows" из командной строки.
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Замучаешься хардкодить, тем более для "всех поддерживаемых"Для восьмёрки и старше всё вкаропке, всё однотипно и в одно движение. Остаётся семёрка и 2008R2 - это замучаешься??? P.S. Про изменение названий фич - спасибо, поржал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2017, 09:28 |
|
||
|
|

start [/forum/topic.php?fid=26&gotonew=1&tid=1493175]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
9ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 398ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...