Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Навіщо програмами потрібні установники - Вадим Стеркиной

  1. [+] Сьогодні в програмі
  2. Рівні сумісності програм
  3. Експеримент з правами на запуск програми
  4. Зменшення розміру інсталяційного пакета
  5. Копіювання файлів в вказану папку і створення ярликів
  6. Інтеграція сторонніх програм
  7. Можливість видалення і відновлення встановленої програми
  8. видалення програм
  9. відновлення програм
  10. Чи можна видаляти файли з папки Windows \ Installer
  11. Усунення проблем з установкою і видаленням програм, що використовують інсталятор Windows
  12. Реєстрація компонентів і створення записів в реєстрі
  13. Асоціація з типами файлів і реєстрація в програмах за замовчуванням
  14. Опитування і дискусія

Наша взаимовыгодная связь https://banwar.org/

В одному із записів блогу ми з'ясовували,   звідки беруться небажане програмне забезпечення В одному із записів блогу ми з'ясовували, звідки беруться небажане програмне забезпечення . Виявилося, що розробники по-всякому приховують їх в установник своїх програм, прагнучи отримати з цього вигоду. Може бути, було б простіше обходитися зовсім без установників програм?

Ця запис пролежала в чернетках майже рік, поки не з'явився привід повернутися до теми установників, який дала ... Windows 8. І хоча сьогоднішня розповідь прямо не пов'язаний з однією особливістю нової ОС Microsoft, наступна стаття буде цілком присвячена їй.

Давайте подивимося на основні сценарії використання установників, щоб розібратися, навіщо вони потрібні.

[+] Сьогодні в програмі

Перевірка прав на установку програми

На цій темі я зупинюся детальніше, оскільки вона стосується одного аспекту зв'язку між контролем облікових записів і сумісністю програм , Який я не торкався раніше.

У сучасних ОС Microsoft перевірка прав на установку програми реалізується запитом контролю облікових записів. У установник можна вбудувати маніфест , Який викликає запит UAC при запуску виконуваного файлу або в процесі установки, якщо це необхідно.

<RequestedExecutionLevel level = "asInvoker | highestAvailable | requireAdministrator" uiAccess = "true | false" />

За допомогою маніфесту можна задати три типи поведінки установника:

  • asInvoker запускає програму з тими правами, які є у користувача на даний момент. Якщо ви працюєте з правами адміністратора і включеним UAC, запуск відбудеться з звичайними правами. Коли контроль облікових записів вимкнений, програма запускається з повними правами.
  • highestAvailable показує запит UAC адміністратору, а звичайному користувачеві - немає.
  • requireAdministrator форсує запит керування обліковими записами, який вимагає прав адміністратора.

Наприклад, браузер Opera спочатку розпаковується в тимчасову папку, звідки запускається установник. Причому запит UAC не відображається, бо права адміністратора знадобляться тільки в тому випадку, коли ви встановлюєте браузер для всіх користувачів.

збільшити малюнок
збільшити малюнок

Якщо вибрати установку в профіль або на USB-носій, щит UAC негайно зникне з кнопки.

Це хороший приклад інтелектуального установника, хоча не кожен ІТ-фахівець розділить цю думку. Адже такий підхід розв'язує руки користувачам, дозволяючи встановлювати програми в профіль. Тому для ефективного заборони адміністратори повинні використовувати SRP або AppLocker .

Рівні сумісності програм

Перераховані вище параметри маніфесту пов'язані з рівнем сумісності програми. У властивостях будь-якого виконуваного файлу ви можете вказати операційну систему, з якої програма сумісна.

Ці параметри відображені в призначеному для користувача розділі реєстру (HKCU), але можна застосувати їх для всіх користувачів в розділі HKLM.

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers] "C: \\ Program Files (x86) \\ PortableSoft \\ BK ReplaceEm \\ replacem.exe" = "WINXPSP3"

Ім'я параметра є повний шлях до програми, а в значенні вказується сумісна ОС. У властивостях файлу немає можливості вказати рівень прав на запуск, але його можна прописати в реєстрі як значення параметра:

  • RunAsInvoker - поточні права
  • RunAsHighest - максимально доступні користувачеві права
  • RunAsAdmin - обов'язкові права адміністратора

До речі, режим сумісності з XP вимагає повних прав.

Експеримент з правами на запуск програми

У редактор реєстру (regedit.exe) закладений запуск з максимально доступними правами (RunAsHighest). На практиці це означає, що:

  • Адміністратор повинен погодитися із запитом контролю облікових записів. В результаті редактор реєстру відкривається з повними правами, даючи можливість вносити зміни в будь-які розділи реєстру, куди є права на запис.
  • Звичайний користувач відразу відкриває редактор реєстру, але з обмеженими правами, тобто може вносити зміни тільки в HKCU.

Я пропоную провести експеримент в командному рядку - це дозволить обійтися без метушні в реєстрі, а також розкриє ще один спосіб запуску програми з певними правами.

Експеримент має сенс тільки в тому випадку, якщо у вас включений контроль облікових записів.

Увійдіть в систему з правами адміністратора, відкрийте командний рядок зі звичайними правами і запустіть редактор реєстру:

start regedit

Як завжди, ви побачите запит контролю облікових записів. Тепер виконайте:

set __COMPAT_LAYER = RunAsInvoker start regedit / m

Перша команда задає змінну, яка визначає рівень сумісності для всіх програм, запущених в цій сесії консолі, а друга запускає ще один екземпляр редактора реєстру (ключ / m). В результаті він відкриється зі звичайними правами.

В Process Explorer добре видно, що у першого примірника (PID 3880) високий рівень цілісності , А у другого (PID 7480) - середній рівень, відповідний звичайним прав. З такими правами ви не зможете внести зміни в HKCR і HKLM, в чому я пропоную вам переконатися самостійно.

Таким чином, можна завжди запускати regedit зі звичайними правами навіть під адміністратором, якщо користуватися вищенаведеним командним файлом або вказати в реєстрі тип запуску RunAsInvoker.

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers] "C: \\ Windows \ regedit.exe" = "RunAsInvoker"

Однак давайте повернемося до установників.

Зменшення розміру інсталяційного пакета

Вище ви бачили, що установник Opera спочатку витягується в тимчасову папку з саморозпаковується в форматі 7-zip. Поєднання високого рівня стиснення і відкритої ліцензії дозволяє розробникам зменшити розмір пакета і заощадити на трафіку. Не дивно, що точно таку ж стратегію застосовують в Mozilla, упаковуючи в 7-zip свої програмні продукти.

Інші компанії можуть використовувати альтернативні засоби стиснення файлів. Microsoft, як правило, використовує формат CAB.

Копіювання файлів в вказану папку і створення ярликів

Під час установки ви можете вказати, в яку папку буде встановлена ​​програма. Ця процедура примітивна, і з нею легко впорається більшість користувачів навіть без установника. Те ж саме можна сказати і про створення ярликів.

Таким чином, ці функції служать для нашої зручності та економії часу.

Інтеграція сторонніх програм

Як ми з'ясували ще рік тому, ця тенденція набрала величезну популярність. Повертаючись до прикладу з AIMP і Яндекс.Бар , Можна розглянути два варіанти інтеграції.

Раніше Яндекс постачав свою панель для браузерів у вигляді пакету MSI, який розробників вбудованих в установник своєї програми. Пакет мав особливі властивостями установника Windows , Що дозволяють гнучко налаштувати установку.

msiexec / i YandexPackSetup.msi YAHOMEPAGE = "y" YAQSEARCH = "y" VENDORSPECIFIC = "some text" / qb

Тепер установка стала більш інтелектуальною за рахунок того, що панель завантажується з серверів Яндекса тільки в тому випадку, якщо при установці відзначений відповідний їй прапорець.

Тепер установка стала більш інтелектуальною за рахунок того, що панель завантажується з серверів Яндекса тільки в тому випадку, якщо при установці відзначений відповідний їй прапорець

Очевидно, за рахунок такого підходу зменшується розмір дистрибутива програми.

Можливість видалення і відновлення встановленої програми

Торкнувшись теми MSI, я хочу зупинитися докладніше на найпопулярнішому типі установника для середніх і великих програм.

видалення програм

Давайте подивимося, як відбувається процес видалення програми, що поставляється в пакеті MSI. До речі, він може переховуватися в будь-який гарній оболонці установника, наприклад, InstallShield .

Пакет кешируєтся в базі даних Windows Windows - папці% SystemRoot% \ Installer, де світло на незрозумілі імена файлів можна пролити, додавши стовпець «Тема».

Пакет кешируєтся в базі даних Windows Windows - папці% SystemRoot% \ Installer, де світло на незрозумілі імена файлів можна пролити, додавши стовпець «Тема»

Коли ви видаляєте програму з панелі управління, система знаходить команду для видалення в розділі реєстру

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall

Тут кожній програмі відповідає свій підрозділ. Параметр UninstallString містить команду для установника Windows, що вказує на ідентифікатор пакета (GUID). Пошук пакету проводиться в папці% SystemRoot% \ Installer по властивості «Редакція».

збільшити малюнок
збільшити малюнок

При використанні інших установників цей параметр може містити, наприклад, шлях до файлу uninstall.exe, який містить інструкції для видалення.

відновлення програм

Відновлення пакетів MSI проходить аналогічно установці, однак різниця в тому, що для цього знадобиться вихідний пакет установника, вказаний в параметрі InstallSource. На малюнку вище не дуже добре видно, але мій шлях вказує на тимчасову папку в кеші IE9 (я запускав установку без збереження файл). Оскільки папка вже очищалася, відновлення не спрацює.

Щоб забезпечити повноцінне відновлення (так само як і зміна набору компонентів), програми можуть кешувати свої вихідні файли. Іноді для цього використовується папка ProgramData , А Microsoft Office створює приховану папку MSOCACHE в корені диска.

Чи можна видаляти файли з папки Windows \ Installer

Якщо ви відносно давно працюєте в поточній системі і встановлюєте різноманітні програми, розмір   прихованої системної   папки% SystemRoot% \ Installer може вимірюватися в гигабайтах Якщо ви відносно давно працюєте в поточній системі і встановлюєте різноманітні програми, розмір прихованої системної папки% SystemRoot% \ Installer може вимірюватися в гигабайтах. Не дивно що люди з маленьким системним розділом задаються питанням про те, чи можна видаляти файли з неї.

Короткий і проста відповідь - ні, видаляти файли з цієї папки можна.

На практиці видалення пакета призведе до того, що система буде володіти невірної інформації про встановлену програмі. Як наслідок:

  • Перестане працювати відновлення. Вище ви бачили, що інсталятор Windows покладається на кешированний пакет MSI для цієї операції, і без нього нічого не відновить.
  • Можуть виникнути проблеми з видаленням програми. Якщо вона почне працювати некоректно, вам абсолютно точно доведеться заново завантажити дистрибутив програми і перевстановити її. Однак записи в реєстрі можуть перешкоджати цьому, оскільки Windows вважає програму встановленої.

Але іноді розуміння цього приходить вже постфактум, хоча і в такому випадку ще не все втрачено.

Усунення проблем з установкою і видаленням програм, що використовують інсталятор Windows

В принципі, можна спробувати видалити записи в реєстрі вручну, але краще скористатися спеціальним діагностичним пакетом Fix it . Він покликаний виправляти проблеми з установкою і видаленням програм, що використовують інсталятор Windows. Пряме посилання на пакет і люстерко у мене на сайті, тому що Microsoft припинила підтримку Fix t в статтях бази знань і потихеньку випилює пакети з публічного доступу.

Якщо проблему не вдається вирішити, можна пошукати в каталогах ПО утиліту Windows Installer CleanUp.

Якщо проблему не вдається вирішити, можна   пошукати в каталогах ПО   утиліту Windows Installer CleanUp

Колись Microsoft випустила її для усунення неполадок в установці Office, але з його новими версіями утиліта вже несумісна. Тому компанія більше не поширює і не підтримує утиліту , Випустивши замість універсальний Fix it (для Office 2013+ є окрема версія ).

Реєстрація компонентів і створення записів в реєстрі

Будь-який серйозний програмний пакет (наприклад, Microsoft Office) обов'язково зажадає повних прав, щоб зареєструвати свої компоненти і бібліотеки, а також створити записи в розділі реєстру HKLM. Такі завдання, необхідні для нормальної роботи програми, завжди відводиться установника.

Втім, не для всіх програм така необхідність є життєво важливою. Так, можна не встановлювати браузер Opera або Firefox, а скопіювати файли, розпаковані після запуску установника, в будь-яку папку. Після запуску браузера в папці% appdata% вашого профілю буде створена окрема папка для зберігання налаштувань і кеша. Одночасно в розділі реєстру HKCU з'являться записи, які стосуються браузеру.

Таким чином, у вас виходить «полупортатівная» програма. Вона працює без установки, але залишає в системі багато слідів, які можна замести лише вручну.

Так чи інакше, можна винести ярлик на робочий стіл або панель завдань, асоціювати браузер з його типами файлів і нормально працювати.

Асоціація з типами файлів і реєстрація в програмах за замовчуванням

Асоціація типів файлів і протоколів з якою-небудь програмою (наприклад, зміна браузера за замовчуванням), є користувальницької налаштуванням, тобто вона не вимагає прав адміністратора.

збільшити малюнок
збільшити малюнок

Існує кілька способів зв'язати програму з її типами файлів і протоколів, один з яких показаний на малюнку вище. Я їх буду дуже докладно розбирати в наступному записі , Тому що Windows 8 змінилася в цьому аспекті!

Опитування і дискусія

Як бачите, на установники програм покладається безліч завдань - від примітивної розпакування файлів і створення ярликів до управління станом програми і її зв'язку з типами файлів і протоколів.

Я впевнений, що багато читачів мого блогу активно користуються портативними програмами, що само по собі не є проблемою.

Однак до неординарної ситуації може привести нехтування монтажником програми в тому випадку, коли він необхідний для її коректної роботи і настройки, а також для відновлення і видалення.

У дискусії я б хотів підвести вас до наступного запису, яка стане однією з найбільших в цьому блозі. Зокрема, мене цікавить, чи користуєтеся ви у своїй основній системі портативними програмами, які асоціюєте з більш ніж одним типом файлів (наприклад, браузером, текстовим редактором або програвачем медіа файлів).

У коментарях, будь ласка, перерахуйте ці програми і поясніть, чому ви користуєтеся портативними версіями замість повноцінних установників.

Результати голосування загублені в зв'язку з припиненням роботи веб-сервісу опитувань.

Обговорення завершено.

Може бути, було б простіше обходитися зовсім без установників програм?
Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: