powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Microsoft Windows [закрыт для гостей] / Победил WaaS
18 сообщений из 18, страница 1 из 1
Победил WaaS
    #36869
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Скрипт обновлен 2024-02-21
724810

Решена задача:

Предотвратить возобновление запуска служб, отвечающих за обновления, после того, как администратор их выключил. При этом оставить возможность включить обновления в любой момент, когда администратор посчитает нужным и выключить их опять.

Решение:


Предотвратить запуск upfc.exe путем отъема у системы прав на его запуск.

Реализация:

Реализовано все набором скриптов, чтобы не пугать недоверчивого пользователя экзешниками. Содержимое архива:
upfc.acl набор прав, которые будут присвоены файлу upfc.exe после установки
allow_updates.cmd после установки можно запустить, дать винде обновиться через интернет
allow_updates_local.cmd после установки можно запустить и установить изолированный пакет обновлений
disallow_updates.cmd выключаем обновления через интернет
disallow_updates_local.cmd выключаем возможность установки изолированных пакетов
proceed.cmd скрипт, выполняющий непосредственно все нужные действия по установке, должен запускаться от имени TrustedInstaller
query_services.cmd скрипт, который можно запустить в любой момент, чтобы посмотреть состояние служб
unistall.cmd возврат системе прав на запуск upfc.exe
install.ps1 собственно инсталляшка
readme.txt там какие-то буковки
tetatmplate.xml шаблон временного задания, которое выполняет proceed.cmd должным образом.
После установки в каталоге появится еще один файл, upfc.acl.bak, это исходный набор прав файла upfc.exe, для того чтобы вернуть все взад.

Как с этим работать:

Скачиваем архив, распаковываем в какой-нибудь удобный каталог поближе к корню диска цэ.
Запускаем install.ps1 с правами администратора. Как запускать неподписанные powershell скрипты, в интернете есть инструкции. Сперва надо включить политику, разрешающую запуск, потом в запущенной от имени администратора среде перейти в нужный каталог и набрать ./install.ps1
После этого обновления будут отключены и, по идее, сами не включатся.

Когда решаем обновиться (после проверки "на кошках"), запускаем от имени администратора allow_updates.cmd, идем в настройки, наблюдаем установку обновлений. После перезагрузки запускаем от имени администратора disallow_updates.cmd, живем дальше спокойно.

Когда решаем накатить отдельно скачанный пакет обновлений, запускаем от имени администратора allow_updates_local.cmd, устанавливаем изолированный пакет, после установки запускаем от имени администратора disallow_updates_local.cmd. Склонные к паранойе могут предварительно отключить сетевой адаптер.

Дата публикации архива - 2022-05-21
antiwaas.zip
Дальше лирика и обсуждения.

Когда начал осваивать десятку (в прошлом году) захотелось сделать так, чтобы служба обновлений управлялась админом легко и надежно, как в семерке. То есть, если админ выключил службу, он должен быть уверен, что она не включится. Погуглил по словам "как отключить обновления в Windows 10", не нашел ничего путного и решил сделать все сам.

Копал долго и глубоко. Разобрался с аудитом служб и процессов, разобрался с xpath в шедулере, докопался до WNF, разобрался с даклами и саклами файлов и служб. В общем, неплохо подтянул админские скиллы. А решение оказалось на поверхности. Причем нашел я его совершенно случайно, на шару. В какой-то момент подумал: "А почему бы не запретить системе доступ к upfc.exe?" И оно сработало. Куча программеров в микрософте сидели и упорно решали задачу как бы усложнить пользователю управление обновлениями, нагородили городушек из WaaSMedicAgent.exe, SIHClient.exe, upfc.exe, UsoClient.exe и четырех служб, а выключается это все одним простым телодвижением.

Как говорится, никогда не следует недооценивать предсказуемость тупизны. Вы спросите "Ну зачем же так грубо? Все-таки пацаны трудились." А я вам незамедлительно отвечу ©.

Во-первых, стратегическое решение затруднить остановку обновлений принял тупой и жадный менеджер, который решал задачу сокращения расходов на тестирование продукта. Продукта, который выпускает одна из богатейших компаний, продукта, который успешно продается по всему миру. Очень неплохого продукта. Когда акционеры пригласили его и попросили сократить расходы, ему следовало бы наоборот, потребовать увеличения расходов. Результаты этой экономии мы с вами видим регулярно.

Во-вторых, эта задача в принципе не может быть решена без заблокированного загрузчика и четкого разделения системных файлов на собственно системные и пользовательские. Как в Андроиде. То есть, архитектор, которому поставили эту задачу, не смог послать на хуй тупого менеджера. Тупой и жадный архитектор, который ссытся за свое место. А знаете, как они подстраховались на тот случай, если архитектор не справится? Написали в соглашении "Эта лицензия не предоставляет вам права ... изучать технологию..." и "Вы даете согласие на получение автоматических обновлений ... без каких-либо дополнительных уведомлений." Детский сад.

В-третьих, программистам для решения этой задачи следовало бы отказаться от использования штатных средств администрирования Windows, которыми вооружены тысячи сисадминов по всему миру.

Извините, накипело. Вернемся к нашим ваасам. Скрипт делает две вещи. Останавливает и выключает ненужные службы и запрещает доступ к файлу upfc.exe двум системным учеткам. Его надо запускать от имени TrustedInstaller, потому что к двум службам у встроенного администратора доступа нет. Для этого можно использовать NSudo, можно штатные средства. В предложенном варианте все штатно. Никаких посторонних экзешников, все вычитывается и проверяется, все действия прозрачны и их можно повторить руками.

Как проверить результат работы скрипта?
Первый способ прост и непритязателен. Подождать недельку и запустить query_services.cmd из архива. Убедиться, что службы остановлены и выключены.
это не работает 
[игнорируется]
Второй - параноидальный. А вдруг виндовс все равно незаметно что-то запустит а потом вернет все настройки обратно? :) Надо включить аудит создания процессов, отдельно в групповых политиках включить "Включать командную строку в события создания процессов" и опять же через недельку посмотреть журнал безопасности с таким фильтром
Спойлер
Код
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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and EventID=4688]]

and (

  (*[EventData[Data[@Name='NewProcessName']='C:\Windows\System32\WaaSMedicAgent.exe']]

  or

  *[EventData[Data[@Name='NewProcessName']='C:\Windows\System32\SIHClient.exe']]

  or

  *[EventData[Data[@Name='NewProcessName']='C:\Windows\System32\upfc.exe']]

  or

  *[EventData[Data[@Name='NewProcessName']='C:\Windows\System32\UsoClient.exe']]

) or (

  *[EventData[Data[@Name='NewProcessName']='C:\Windows\System32\svchost.exe']] and (

    *[EventData[Data[@Name='CommandLine']='C:\Windows\system32\svchost.exe -k wusvcs -p -s WaaSMedicSvc']]

    or

    *[EventData[Data[@Name='CommandLine']='C:\Windows\system32\svchost.exe -k netsvcs -p -s wuauserv']]

    or

    *[EventData[Data[@Name='CommandLine']='C:\Windows\system32\svchost.exe -k netsvcs -p -s UsoSvc']]

    or

    *[EventData[Data[@Name='CommandLine']='C:\Windows\system32\svchost.exe -k wusvcs -p']])

  )

)
Теоретически, должно быть пусто. Разве что UsoClient.exe может запускаться из шедулера. Задания нужно чистить отдельно. После параноидальной проверки можно вернуться к простой, не забыв отключить аудит создания процессов.
Применение:

Распаковываем архив куда-нибудь поближе к корню диска, запускаем powershell от имени администратора, переходим в каталог antiwaas, запускаем
Код: PowerShell
1.
./install.ps1
Ну, или как кому удобно.

Замечания:

1. В Windows Server может не быть службы wscsvc. Или игнорируем ошибки, или правим proceed.cmd и query_services.cmd

2. BITS используется не только службой обновлений, но и другими программами, например Google Chrome. Скорее всего, ее можно оставлять включенной, но я не пробовал. Для этого правим proceed.cmd

3. upfc не восстанавливает службы DiagTrack и wscsvc, они тут просто за компанию.

4. Отменить все изменения можно запустив uninstall.cmd от имени администратора. Через какое-то время upfc запустится и восстановит запуск служб.

5. Догадается ли SFC /scannow проверить права доступа к upfc.exe, я не знаю.

6. Параноидальная проверка предполагает, что винда установлена в C:\Windows. Ммм. Это очевидно. Ну да ладно.

7. Теоретически на момент запуска скрипта upfc может быть запущен. Что будет в таком случае, я не знаю. На всякий случай стоит проверить в диспетчере задач и подождать, пока он завершится. Он не постоянно работает.

Даже не знаю, что еще написать. В общем, поставляется "как есть".
...
Изменено: 21.02.2024, 15:03 - Просто Трёп
Рейтинг: 2 / 0
Нравится: basename, Гарыныч
Победил WaaS
    #36877
Фотография Буся
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но зачем отключать обновления? оно же и так дырявое,сиди на симерке тогда
...
хвост есть продолжение кошки
Рейтинг: 0 / 0
Победил WaaS
    #39644
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Речь не о том, чтобы отключать обновления, а о том, чтобы управлять их установкой.
...
Рейтинг: 0 / 0
Победил WaaS
    #40558
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп [игнорируется] 

Я обновление отключал заданием лимитного подключения, кроме того, фоновые службы перестают трафик сосать. Когда надо - обновлял. Ну это дома. Так-то на одминском уровне, тем более в домене давно с виндой не сталкиваюсь.

А так спасибо, интересно!
...
Рейтинг: 0 / 0
Победил WaaS
    #40562
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Буся  14.05.2022, 13:58
[игнорируется]
но зачем отключать обновления? оно же и так дырявое,сиди на симерке тогда
Например, играешь в танки, оно утилизирует канал, в танках лаги )
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Победил WaaS
    #41026
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
После того, как прижучили Waas и upfc скриптом из стартпоста, обновлениями можно управлять.
Запустить
Код
1.
2.
3.
4.
5.
6.
7.
8.
@echo off
chcp 65001
echo -----------------------------------------wuauserv---------------------
sc config wuauserv start=auto
sc start wuauserv | find "STATE"
echo -----------------------------------------BITS-------------------------
sc config BITS start=auto
sc start BITS | find "STATE"
Остановить
Код
1.
2.
3.
4.
5.
6.
7.
8.
@echo off
chcp 65001
echo -----------------------------------------wuauserv---------------------
sc stop wuauserv | find "STATE"
sc config wuauserv start=disabled
echo -----------------------------------------BITS-------------------------
sc stop BITS | find "STATE"
sc config BITS start=disabled
Но это не точно
:)
...
Рейтинг: 0 / 0
Победил WaaS
    #41047
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Хм. Запуск BITS и wuauserv недостаточно, чтобы возобновить получение обновлений. Какой-то трафик идет, но центр обновлений говорит, что что-то пошло не так. Разберусь, отпишусь.
...
Рейтинг: 0 / 0
Победил WaaS
    #41092
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Оркестратор тоже надо запускать.
...
Рейтинг: 0 / 0
Победил WaaS
    #41199
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Сейчас обновил винду без полного анинсталла.
Запустил три службы (от администратора)
Код
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
@echo off
chcp 65001
echo -----------------------------------------wuauserv---------------------
sc config wuauserv start=auto
sc start wuauserv | find "STATE"
echo -----------------------------------------BITS-------------------------
sc config BITS start=auto
sc start BITS | find "STATE"
echo -----------------------------------------UsoSvc-----------------------
sc config UsoSvc start=auto
sc start UsoSvc | find "STATE"
pause
Зашел в параметры - обновления и безопасность, винда скачала апдэйты, нижайше попросилась перезагрузиться, я милостиво позволил, после перезагрузки вырубил три службы обратно (от администратора)
Код
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
@echo off
chcp 65001
echo -----------------------------------------wuauserv---------------------
sc stop wuauserv | find "STATE"
sc config wuauserv start=disabled
echo -----------------------------------------BITS-------------------------
sc stop BITS | find "STATE"
sc config BITS start=disabled
echo -----------------------------------------UsoSvc-----------------------
sc stop UsoSvc | find "STATE"
sc config UsoSvc start=disabled
pause
Проверил права на upfc.exe, ничего не изменилось. Права только у админа. Вот и все.
Единственное, пока не ясно, что будет, когда винда захочет обновить сам upfc.exe. Если справится самостоятельно - норм. После обновления надо будет сделать инсталл. Если не сможет - сделать анинсталл, обновиться, потом инсталл. Тоже норм.
...
Изменено: 19.05.2022, 13:05 - Просто Трёп
Рейтинг: 0 / 0
Победил WaaS
    #41200
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Да, и с параноидальным фильтром я накосячил. Не учел, что если svchost нужной группы уже запущен, то новый процесс не создается. Сервис менеджер просто дает команду хосту подгрузить еще одну dll. Тот фильтр отрабатывает экзешники upfc, агенты и клиенты, а службы - только если вдруг какая-то из них будет запущена первой в своей группе. Аудит служб надо отдельно включать и отслеживать по отдельному коду события.
...
Рейтинг: 0 / 0
Победил WaaS
    #42090
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
basename, дай, пожалуйста, модера. Я приведу в порядок стартпост, чтобы там актуальная информация была, и файлы для скачивания. Так ведь можно?
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Победил WaaS
    #42097
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользователь назначен модератором темы: Просто Трёп.
...
basename:
Пользователь назначен модератором темы: Просто Трёп.
Рейтинг: 0 / 0
Победил WaaS
    #42098
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто Трёп  20.05.2022, 14:00
[игнорируется]
basename, дай, пожалуйста, модера. Я приведу в порядок стартпост, чтобы там актуальная информация была, и файлы для скачивания. Так ведь можно?
Можно да. Почему нет? Назначил модером
...
Рейтинг: 1 / 0
Нравится: Гарыныч
Победил WaaS
    #42324
IT-Христ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит WaaS, проясню вопрос.

Workplace as a Service (WaaS) - альтернатива приобретению ПК

WaaS - полностью готовое рабочее место пользователя:

Железо. Простой ноутбук для рядовых задач с типовыми офисными приложениями, мощный ноутбук для специфических задач, а также другие форматы устройств: моноблок, классический ПК или бизнес-планшет.
Программное обеспечение. Операционная система и все необходимые приложения по требованию заказчика (офисный пакет, антивирус, почтовый клиент и др.). Лицензирование на наиболее выгодных условиях.
Сервисы. Виртуальный офис – это корпоративная почта, средство универсальных коммуникаций и телефония, корпоративный портал. Возможна аренда приложений Microsoft Office.
Обслуживание. обслуживание на стороне поставщика с привлечением, при необходимости, поставщика и иных сервисных партнеров.
---
Решил разъяснить термин WaaS заодно выложил тут результат исследований.
...
Изменено: 21.05.2022, 08:26 - Просто Трёп
Рейтинг: 0 / 0
Победил WaaS
    #42371
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IT-Христ  20.05.2022, 18:19
[игнорируется]
Что значит WaaS, проясню вопрос.

Workplace as a Service (WaaS) - альтернатива приобретению ПК

WaaS - полностью готовое рабочее место пользователя:

Железо. Простой ноутбук для рядовых задач с типовыми офисными приложениями, мощный ноутбук для специфических задач, а также другие форматы устройств: моноблок, классический ПК или бизнес-планшет.
Программное обеспечение. Операционная система и все необходимые приложения по требованию заказчика (офисный пакет, антивирус, почтовый клиент и др.). Лицензирование на наиболее выгодных условиях.
Сервисы. Виртуальный офис – это корпоративная почта, средство универсальных коммуникаций и телефония, корпоративный портал. Возможна аренда приложений Microsoft Office.
Обслуживание. обслуживание на стороне поставщика с привлечением, при необходимости, поставщика и иных сервисных партнеров.
---
Решил разъяснить термин WaaS заодно выложил тут результат исследований.
Это другое :)
...
Изменено: 21.05.2022, 08:27 - Просто Трёп
Рейтинг: 0 / 0
Победил WaaS
    #123368
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Тема была перенесена из форума 'Вопросы по IT'.
...
Администратор:
Тема была перенесена из форума 'Вопросы по IT'.
Рейтинг: 0 / 0
Период между сообщениями больше года.
Победил WaaS
    #559361
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Решил подготовить себе новую сборку LTSC. Установил на виртуалку, дал обновиться, установил antiwaas из шапки. Все работает. Но надо помнить, что обновленная LTSC 21H2 остается все той же 21H2.
Надо будет проверить, будет ли работать скрипт под 22H2.

И еще дополнение, может, для кого-то не очевидно.
Скрипт install.ps1 надо запускать с повышением прав (от имени Администратора).
Прежде, чем его запускать, надо проверить GPO на тему запуска скриптов
Код: PowerShell
1.
Get-ExecutionPolicy
И при необходимости разрешить их запуск
Код: PowerShell
1.
Set-ExecutionPolicy Unrestricted -Force
Или через GPO
Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Windows PowerShell -> Turn on Script Execution
...
Рейтинг: 0 / 0
Победил WaaS
    #724810
Просто Трёп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Обновление. Теперь блокируются:

upfc.exe
CompatTelRunner.exe
UsoClient.exe

Если будете обновляться с прошлой версии, ей надо сделать uninstall.
antiwaas.pub.zip
...
Рейтинг: 1 / 0
Нравится: Гарыныч
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft Windows [закрыт для гостей] / Победил WaaS
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Игнорируют тему (1): erbol
Читали форум (1): Анонимы (1)
Пользователи онлайн (50): Анонимы (45), Yandex Bot, Bing Bot 2 мин., sergey11 5 мин., AK 7 мин., XEugene 8 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]