Информация об изменениях

Сообщение Re[29]: Windows захватили инопланетяне? от 23.01.2020 8:37

Изменено 23.01.2020 17:47 blp

Re[29]: Windows захватили инопланетяне?
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, blp, Вы писали:


blp>>Общепринятое понимание слов "поставленная задача" — это какой-то набор работ, который нужно сделать.

S>Простите, но с т.з. архитектуры такое понимание задачи — это уровень джуниор-девелопера. Ему сказали "написать функцию" — он написал функцию. Сказали бы "написать класс" — он бы написал класс.
Хорошо, это понимание на уровне джуниор-девелопера, но именно так процесс разработки работает в больших компаниях. Кто-то архитектурит, рождает список задач, и эти задачи потом решаются. А не меняются, как удобнее в задачи "нарисовать лошадку".

S>Вы рассуждаете на каком-то сверхнизком уровне принятия решений — в рамках задачи "написать per-user service" задача "написать per-user service" очевидно является единственным возможным выбором.

S>Интересует не она, а то, откуда вообще взялась задача "написать per-user service".
Ну, ее придумали в результате планирования новых фич, которые нужны были бизнесу. Бизнесу нужна была изоляция процессов для большей reliability и меньшего количества крашей. Проанализировали дампы — телеметрию и приняли решение.

S>Я, с точки зрения своего опыта работы продукт менеджером, делаю вывод о том, что была поставлена какая-то прикладная задача. При обсуждении кто-то предложил прикостылить вот эти вот per-user services.

Ну то есть опять ваши субьективные оценки сверху. "Прикостылить" и т д. Неинтересно. Было бы интересно, если бы вы сами спроектировали какую-нибудь подсистему ОС.

S>Судя по всему, единодушной поддержки это решение не получило; его приняли с условием "ок, давайте попробуем; если окажется, что проблем создаётся больше, чем решается — откатим обратно".

Судя по чему именно?


>>>Что именно было отрефакторено?

blp>>Блин, мне правда скучно быть капитаном очевидность, уже начинает подзадалбывать. Ну посмотрите глазами. CDPSvc / CDPUserSvc хотя бы
S>Эмм, вы уверены?
Да. Только умоляю, не спрашивайте, почему. Я уже устал объяснять очевидные вещи.

>CDPSvc никуда не делся.

А он должен был?

>Вы точно уверены, что CDPUserSVC — это рефакторинг кода CDPSvc,

Да.

> или его код вынесен в сервис из каких-то приложений, которые до этого бегали в пользовательской сессии?

Не понял, какие еще приложения? Раньше был просто CDPSvc

S>Как мы знаем — нет. Ну так какой смысл рассуждать в терминах стажёрских задач?

Давайте я вам анекдот расскажу.

Международный съезд пивоваров. После напряженного рабочего дня директора крупнейших пивоварен мира тусуются в баре.
Директор Бадвайзера громко, чтобы все слышали, заказывает:
— Дайте мне любимый напиток каждого американца, жажду утоляющий, легко пьющийся в любое время дня, прозрачный как слеза ребенка — БАД ЛАЙТ!!
Ему наливают, он сидит и потягивает Бад с блаженным видом.
Директор Короны прочищает горло, и тоже:
— Дайте мне гордость всей Мексики, древнейший напиток цивилизованного человека, ароматную, янтарную, восхитительную КОРОНУ!!
Получает, начинает смаковать, а сам давит косяка на директора Гиннеса — как, мол, тот выпендрится.
— А мне, любезнейший, стакан Кока Колы, — говорит директор Гиннеса.
Ему наливают, и он с наслаждением высасывает охлажденную шипучку. Все в шоке.
Директор Короны спрашивает, почему он не заказал Гиннес.
— Дык, из солидарности, — отвечает директор Гиннеса. — Вы пиво не пьете, так что же я буду?


я общаюсь на уровне собеседников.

S>Про задачу "сделать так, чтобы краш процесса не влиял на всех юзеров сразу" я уже писал, не буду повторяться.

Где писали? Дайте ссылку, пожалуйста, я, видимо, пропустил.

blp>>Почему "ивестиции в QA" и "разделениесервисов по юзерам" взаимоисключающие вещи?

S>Потому что объём ресурсов всегда ограничен.
Вы вообще в курсе как бюджеты в МС планируются? Например, в курсе ли вы что QA и разработка не имеют общего бюджета? Что у них нет общего "менеджера"? Что "тестирование" виндовса это совсем не то, что вы думаете?

>Менеджер продукта всегда выбирает не то, что делать, а то, чего не делать в рамках релиза.

В рамках аутсорсинговой компании эта логика работает. В рамках корпорации вроде МСа, релизящего ОС на миллиарды машин — нет.

S>Взаимодействие с десктопом тут дело десятое.

Это почему? Потому что вам так удобнее?

> Уж оно-то точно легче делается в обычных приложениях, чем в сервисах. Вы сформулировали задачу изолировать пользовательские процессы друг от друга — вот вам пример решения аналогичной задачи. Ведь можно было бы сделать и per-virtual-application сервисы, следуя ровно той же логике.

Ну можно было. Только не нужно было. Я же сказал — они не per-user logon session. Там проблемы совсем другие и решаются они по-другому.

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

S>Нет там никаких костылей в ядре.
Говорит нам эксперт по виндовому ядру, знающий его вдоль и поперек?
Есть они, как раз те самые недокументированные. Начать хотя бы с того, как SSL реализован в обход красивой архитектуры с lsass.exe и LPC.

S>>>Ок, как будет себя вести при логоффе неинтерактивный процесс, который запущен из-под сервиса под токеном пользователя?

blp>>Как запущен? ну вот реально как?
S>Запущен через CreateProcessWithToken, например.
О мама-миа... Где вы токен возьмете? Только не говорите про LogonUser — пароля юзера у вас нет.

blp>>что вообще такое "неинтерактивный процесс"? Консольное приложение? Приложение без видимых окон? консольное?

S>Оконное приложение, которое не создаёт никаких окон.
Ну вот про него в MSDN вполе подробно написано.

blp>>ShutdownBlockReasonCreate вызывался?

S>Нет, мы говорим не о шатдауне, а о logoff.
Они с точки зрения поведения системы при завершении приложений во многом совпадают, в MSDN отдельно логофф не описывается, это часть того, что называется "шатдаун". Он просто разный бывает. Читать MSDN все-таки придется, если хотите разобраться.

blp>>Что такое "при логоффе"? Инсталл критических апдейтов вызывает логофф, но другого типа — и т. д.

S>О, вот это интересно. Расскажите, что за типы логоффа? Я вот в MSDN не нашёл.
Это называется "тип шатдауна". Как такового понятия "логофф" с точки зрения "приложения" нет — ему говорят что "надо бы завершиться" либо надо завершится "прямщаз". В статье что я привел это вполне подробно описывается. Оттуда интересующие вещи можно детально поискать — ENDSESSION_CRITICAL там и все такое.

S>Это я читал. Ничего интересного в рамках нашей дискуссии там нет.

Есть.

>Напомню, что мы обсуждаем именно logoff

В windows logoff — это такой тип шатдауна, как бы странно это ни звучало. Текст по ссылке вы не читали либо читали невнимательно. Даже сам логофф можно выполнить командой shutdown /l

>- задержка шатдауна как раз хорошо документирована, и её прекрасно обработает system-wide сервис.

На колу мочало... Вам надо задержать логофф чтобы ваши системные процессы не прибились и корректно деинициализировались — как именно вы это сделаете без серивсов, так чтобы юзер не мог на это повлиять? Я думал, что один раз спросить будет достаточно, но вот приходится повторять...

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

S>Ну, это же вы рассказываете мне, что именно сервис имеет возможность задерживать логофф, в отличие от приложения. Вот и расскажите, как именно.
Я уже все рассказал и даже ссылки в MSDN показал. Вы увидели там слово "shutdown" и почему-то решили, что их читать не надо.

S>"Запустить" — а в чём, собственно, проблема? CreateThread() и поехали.

Никаких проблем. "Все отнять и поделить" (с) Шариков.

S>Ну, вы же уже прочитали, и уверены в том, что хорошо во всём разобрались. Если нет — так и напишите, будем вместе читать. А критика чужой квалификации без демонстрации своей — неубедительна, увы.

Печально, чо. Я за вас MSDN читать не буду. Приведенных мною ссылок и комментариев вполне достаточно, чтобы понять, что я имею в виду. Sapienti sat.

blp>>Не могу вам его дать

S>Ну, спасибо что признались.
Не за что, обращайтесь!

blp>>Нету сервиса "OneSyncSvc", который вы хотите перезапустить. Sad but true.

S>Ну как же так?
Ну правда — нету его. Нету сервиса, который так называется.

>Ладно, давайте остановим сервис CDPUserSvc, т.к. я не подключаю устройства, для которых он нужен.

и сервиса CDPUserSvc тоже нет.

>Только, пожалуйста, тот, который в моей сессии — не хочу случайно стопнуть чужой сервис.

Да сколько можно!

S>Вы же говорите, что существующие тулзы прекрасно работают с этими новыми сервисами, так?

Дв, прекрасно работают.

>Ну ладно, фиг с ним с настройками сервиса (которые выдают invalid parameter — см. заглавное сообщение). Но уж старт-стоп то мы должны получить на халяву, нет? Иначе не очень понятно, какие такие преимущества даёт нам запиливание этой функциональности в виде сервиса, а не обычного процесса.

start-stop вы получаете нахаляву. Надо просто правильно формулировать, что вам блин надо запустить или остановить.
Для этого надо перестать требовать себе розового пони и сформулировать вопрос в терминах, в которых работают тулы.

Я включу телепата, ибо мне надоело, но больше я это делать не буду.
"который в моей сессии" — что блин за ваша сессия, их может быть много. Есть terminal services, есть powersell.
Ну ладно, допустим вы запустили qwinsta и видите там что-то вот такое:

 SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE 
 services                                    0  Disc                        
                                             1  Down                        
>console           ВАШ ЛОГИН                 3  Active                      
 7a78855482a04...                        65536  Listen


из чего делаем вывод, что session id у нас 3

делаем
tasklist /svc /fi "session eq 3" | findstr CDPUserSvc | clip

svchost.exe                  14144 CDPUserSvc_180c2626


дальше делаем net stop CDPUserSvc_180c2626 / net start CDPUserSvc_180c2626.
Как сделать это на павершелле оставлю как самолстоятельное упражнение.

blp>>Начните сомневаться в том, что вы лучше людей из МСа, дизайнящих ОС, знаете как это делать. Полезно. Я, кажется, дал вам достаточно поводов об этом задуматься. Но если нет — то медицина тут бессильна

S>Я и так сомневаюсь
нет, вы ведете себя так, как будто лучше знаете что и как проектировать. Сыпите терминами вроде kludge, "кривой", "приемлемый дизайн" и т. д.

>Просто моя вера в то, что люди из МС обладают какими-то священными свойствами, прошла лет двадцать тому назад.

Зачем во что-то "верить"? Почему нельзя просто логически мыслить?

S>Познакомился с ними — такие же люди, как везде. В разработке — такой же бардак, как у нас. Решения — такие же, как у нас. Где-то — офигенные, где-то — слабые. А где-то вообще джуну дали реализовать, и там во все стороны верёвки торчат. Поэтому считаю совершенно нормальным обсуждать любые решения, принятые в Редмонде, не пытаясь сразу встать на позицию "раз это МС — значит это круто, даже если я не понимаю".

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

S>Поэтому как раз интересно выяснить подробности — зачем вообще нужны per-user services, и являются ли они оптимальными для того, для чего позиционируются.

Не знаю, как вы определяете "оптимальность", обьяснения, зачем там именно сервисы, я уже привел. Придется напрячься и почитать MSDN, по-другому никак.

S>В MSDN про это ничего не написано.

В MSDN много чего написано. Даже слишком много. Не все хотят его читать.

>Остаётся только надеяться на то, что кто-то из евангелистов напишет таки блог про это.

Маловероятно. Этих "евангелистов" подразогнали в рамках недавних увольнений. Толку от них мало было.

S>Вы, вроде бы, как раз такой человек. Но почему-то всё время скатываетесь на обсуждение личности оппонентов

Ну характер у меня такой. Когда собеседники сходу начинают шариковское "не согласен я!" и бросаться слоавми типа "костыль", попутно демонстрируя полное непонимание ряда вполне себе документиованных особенностей винды, невозможно не поязвить.
Re[29]: Windows захватили инопланетяне?
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, blp, Вы писали:


blp>>Общепринятое понимание слов "поставленная задача" — это какой-то набор работ, который нужно сделать.

S>Простите, но с т.з. архитектуры такое понимание задачи — это уровень джуниор-девелопера. Ему сказали "написать функцию" — он написал функцию. Сказали бы "написать класс" — он бы написал класс.
Хорошо, это понимание на уровне джуниор-девелопера, но именно так процесс разработки работает в больших компаниях. Кто-то архитектурит, рождает список задач, и эти задачи потом решаются. А не меняются, как удобнее в задачи "нарисовать лошадку".

S>Вы рассуждаете на каком-то сверхнизком уровне принятия решений — в рамках задачи "написать per-user service" задача "написать per-user service" очевидно является единственным возможным выбором.

S>Интересует не она, а то, откуда вообще взялась задача "написать per-user service".
Ну, ее придумали в результате планирования новых фич, которые нужны были бизнесу. Бизнесу нужна была изоляция процессов для большей reliability и меньшего количества крашей. Проанализировали дампы — телеметрию и приняли решение.

S>Я, с точки зрения своего опыта работы продукт менеджером, делаю вывод о том, что была поставлена какая-то прикладная задача. При обсуждении кто-то предложил прикостылить вот эти вот per-user services.

Ну то есть опять ваши субьективные оценки сверху. "Прикостылить" и т д. Неинтересно. Было бы интересно, если бы вы сами спроектировали какую-нибудь подсистему ОС.

S>Судя по всему, единодушной поддержки это решение не получило; его приняли с условием "ок, давайте попробуем; если окажется, что проблем создаётся больше, чем решается — откатим обратно".

Судя по чему именно?


>>>Что именно было отрефакторено?

blp>>Блин, мне правда скучно быть капитаном очевидность, уже начинает подзадалбывать. Ну посмотрите глазами. CDPSvc / CDPUserSvc хотя бы
S>Эмм, вы уверены?
Да. Только умоляю, не спрашивайте, почему. Я уже устал объяснять очевидные вещи.

>CDPSvc никуда не делся.

А он должен был?

>Вы точно уверены, что CDPUserSVC — это рефакторинг кода CDPSvc,

Да.

> или его код вынесен в сервис из каких-то приложений, которые до этого бегали в пользовательской сессии?

Не понял, какие еще приложения? Раньше был просто CDPSvc

S>Как мы знаем — нет. Ну так какой смысл рассуждать в терминах стажёрских задач?

Давайте я вам анекдот расскажу.

Международный съезд пивоваров. После напряженного рабочего дня директора крупнейших пивоварен мира тусуются в баре.
Директор Бадвайзера громко, чтобы все слышали, заказывает:
— Дайте мне любимый напиток каждого американца, жажду утоляющий, легко пьющийся в любое время дня, прозрачный как слеза ребенка — БАД ЛАЙТ!!
Ему наливают, он сидит и потягивает Бад с блаженным видом.
Директор Короны прочищает горло, и тоже:
— Дайте мне гордость всей Мексики, древнейший напиток цивилизованного человека, ароматную, янтарную, восхитительную КОРОНУ!!
Получает, начинает смаковать, а сам давит косяка на директора Гиннеса — как, мол, тот выпендрится.
— А мне, любезнейший, стакан Кока Колы, — говорит директор Гиннеса.
Ему наливают, и он с наслаждением высасывает охлажденную шипучку. Все в шоке.
Директор Короны спрашивает, почему он не заказал Гиннес.
— Дык, из солидарности, — отвечает директор Гиннеса. — Вы пиво не пьете, так что же я буду?


я общаюсь на уровне собеседников.

S>Про задачу "сделать так, чтобы краш процесса не влиял на всех юзеров сразу" я уже писал, не буду повторяться.

Где писали? Дайте ссылку, пожалуйста, я, видимо, пропустил.

blp>>Почему "ивестиции в QA" и "разделениесервисов по юзерам" взаимоисключающие вещи?

S>Потому что объём ресурсов всегда ограничен.
Вы вообще в курсе как бюджеты в МС планируются? Например, в курсе ли вы что QA и разработка не имеют общего бюджета? Что у них нет общего "менеджера"? Что "тестирование" виндовса это совсем не то, что вы думаете?

>Менеджер продукта всегда выбирает не то, что делать, а то, чего не делать в рамках релиза.

В рамках аутсорсинговой компании эта логика работает. В рамках корпорации вроде МСа, релизящего ОС на миллиарды машин — нет.

S>Взаимодействие с десктопом тут дело десятое.

Это почему? Потому что вам так удобнее?

> Уж оно-то точно легче делается в обычных приложениях, чем в сервисах. Вы сформулировали задачу изолировать пользовательские процессы друг от друга — вот вам пример решения аналогичной задачи. Ведь можно было бы сделать и per-virtual-application сервисы, следуя ровно той же логике.

Ну можно было. Только не нужно было. Я же сказал — они не per-user logon session. Там проблемы совсем другие и решаются они по-другому.

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

S>Нет там никаких костылей в ядре.
Говорит нам эксперт по виндовому ядру, знающий его вдоль и поперек?
Есть они, как раз те самые недокументированные. Начать хотя бы с того, как SSL реализован в обход красивой архитектуры с lsass.exe и LPC.

S>>>Ок, как будет себя вести при логоффе неинтерактивный процесс, который запущен из-под сервиса под токеном пользователя?

blp>>Как запущен? ну вот реально как?
S>Запущен через CreateProcessWithToken, например.
О мама-миа... Где вы токен возьмете? Только не говорите про LogonUser — пароля юзера у вас нет.

blp>>что вообще такое "неинтерактивный процесс"? Консольное приложение? Приложение без видимых окон? консольное?

S>Оконное приложение, которое не создаёт никаких окон.
Ну вот про него в MSDN вполе подробно написано.

blp>>ShutdownBlockReasonCreate вызывался?

S>Нет, мы говорим не о шатдауне, а о logoff.
Они с точки зрения поведения системы при завершении приложений во многом совпадают, в MSDN отдельно логофф не описывается, это часть того, что называется "шатдаун". Он просто разный бывает. Читать MSDN все-таки придется, если хотите разобраться.

blp>>Что такое "при логоффе"? Инсталл критических апдейтов вызывает логофф, но другого типа — и т. д.

S>О, вот это интересно. Расскажите, что за типы логоффа? Я вот в MSDN не нашёл.
Это называется "тип шатдауна". Как такового понятия "логофф" с точки зрения "приложения" нет — ему говорят что "надо бы завершиться" либо надо завершится "прямщаз". В статье что я привел это вполне подробно описывается. Оттуда интересующие вещи можно детально поискать — ENDSESSION_CRITICAL там и все такое.

S>Это я читал. Ничего интересного в рамках нашей дискуссии там нет.

Есть.

>Напомню, что мы обсуждаем именно logoff

В windows logoff — это такой тип шатдауна, как бы странно это ни звучало. Текст по ссылке вы не читали либо читали невнимательно. Даже сам логофф можно выполнить командой shutdown /l

>- задержка шатдауна как раз хорошо документирована, и её прекрасно обработает system-wide сервис.

На колу мочало... Вам надо задержать логофф чтобы ваши системные процессы не прибились и корректно деинициализировались — как именно вы это сделаете без серивсов, так чтобы юзер не мог на это повлиять? Я думал, что один раз спросить будет достаточно, но вот приходится повторять...

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

S>Ну, это же вы рассказываете мне, что именно сервис имеет возможность задерживать логофф, в отличие от приложения. Вот и расскажите, как именно.
Я уже все рассказал и даже ссылки в MSDN показал. Вы увидели там слово "shutdown" и почему-то решили, что их читать не надо.

S>"Запустить" — а в чём, собственно, проблема? CreateThread() и поехали.

Никаких проблем. "Все отнять и поделить" (с) Шариков.

S>Ну, вы же уже прочитали, и уверены в том, что хорошо во всём разобрались. Если нет — так и напишите, будем вместе читать. А критика чужой квалификации без демонстрации своей — неубедительна, увы.

Печально, чо. Я за вас MSDN читать не буду. Приведенных мною ссылок и комментариев вполне достаточно, чтобы понять, что я имею в виду. Sapienti sat.

blp>>Не могу вам его дать

S>Ну, спасибо что признались.
Не за что, обращайтесь!

blp>>Нету сервиса "OneSyncSvc", который вы хотите перезапустить. Sad but true.

S>Ну как же так?
Ну правда — нету его. Нету сервиса, который так называется.

>Ладно, давайте остановим сервис CDPUserSvc, т.к. я не подключаю устройства, для которых он нужен.

и сервиса CDPUserSvc тоже нет.

>Только, пожалуйста, тот, который в моей сессии — не хочу случайно стопнуть чужой сервис.

Да сколько можно!

S>Вы же говорите, что существующие тулзы прекрасно работают с этими новыми сервисами, так?

Дв, прекрасно работают.

>Ну ладно, фиг с ним с настройками сервиса (которые выдают invalid parameter — см. заглавное сообщение). Но уж старт-стоп то мы должны получить на халяву, нет? Иначе не очень понятно, какие такие преимущества даёт нам запиливание этой функциональности в виде сервиса, а не обычного процесса.

start-stop вы получаете нахаляву. Надо просто правильно формулировать, что вам блин надо запустить или остановить.
Для этого надо перестать требовать себе розового пони и сформулировать вопрос в терминах, в которых работают тулы.

Я включу телепата, ибо мне надоело, но больше я это делать не буду.
"который в моей сессии" — что блин за ваша сессия, их может быть много. Есть terminal services, есть powershell remoting.
Ну ладно, допустим вы запустили qwinsta и видите там что-то вот такое:

 SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE 
 services                                    0  Disc                        
                                             1  Down                        
>console           ВАШ ЛОГИН                 3  Active                      
 7a78855482a04...                        65536  Listen


из чего делаем вывод, что session id у нас 3

делаем
tasklist /svc /fi "session eq 3" | findstr CDPUserSvc | clip

svchost.exe                  14144 CDPUserSvc_180c2626


дальше делаем net stop CDPUserSvc_180c2626 / net start CDPUserSvc_180c2626.
Как сделать это на павершелле оставлю как самостоятельное упражнение.

blp>>Начните сомневаться в том, что вы лучше людей из МСа, дизайнящих ОС, знаете как это делать. Полезно. Я, кажется, дал вам достаточно поводов об этом задуматься. Но если нет — то медицина тут бессильна

S>Я и так сомневаюсь
нет, вы ведете себя так, как будто лучше знаете что и как проектировать. Сыпите терминами вроде kludge, "кривой", "приемлемый дизайн" и т. д.

>Просто моя вера в то, что люди из МС обладают какими-то священными свойствами, прошла лет двадцать тому назад.

Зачем во что-то "верить"? Почему нельзя просто логически мыслить?

S>Познакомился с ними — такие же люди, как везде. В разработке — такой же бардак, как у нас. Решения — такие же, как у нас. Где-то — офигенные, где-то — слабые. А где-то вообще джуну дали реализовать, и там во все стороны верёвки торчат. Поэтому считаю совершенно нормальным обсуждать любые решения, принятые в Редмонде, не пытаясь сразу встать на позицию "раз это МС — значит это круто, даже если я не понимаю".

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

S>Поэтому как раз интересно выяснить подробности — зачем вообще нужны per-user services, и являются ли они оптимальными для того, для чего позиционируются.

Не знаю, как вы определяете "оптимальность", обьяснения, зачем там именно сервисы, я уже привел. Придется напрячься и почитать MSDN, по-другому никак.

S>В MSDN про это ничего не написано.

В MSDN много чего про это и не про это написано. Даже слишком много. Не все хотят его читать. Некоторые ещё, видимо, не могут.

>Остаётся только надеяться на то, что кто-то из евангелистов напишет таки блог про это.

Маловероятно. Этих "евангелистов" подразогнали в рамках недавних увольнений. Толку от них мало было.

S>Вы, вроде бы, как раз такой человек. Но почему-то всё время скатываетесь на обсуждение личности оппонентов

Ну характер у меня такой. Когда собеседники сходу начинают шариковское "не согласен я!" и бросаться словами типа "костыль", попутно демонстрируя полное непонимание ряда вполне себе документиованных особенностей винды, невозможно не поязвить.