|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
Файл вида C:\Windows\System32\drivers\*.sys Дабы не делать из темы помойку, на левые вопросы отвечу сразу. Не вирус. Штатный MS драйвер по сути не менявшийся с 1999г. MS умудрился его непреднамеренно испортить в Windows10 где-то в начале года с очередным обновлением (в изначальном оф. релизе проблем не было). Я с MS общаться напрямую не умею (да и клал он). Но есть люди, которые вроде как вышли на их горе-драйвероделателей. Чего из этого выйдет пока не ясно, по идее должны исправить но хз. Текущим решением является тупо взятие файла из Win8.1 (либо Win10 до того как испортили) и муванье оного в текущий билд. Проблема с цифровой подписью при этом как бы возникает, но в целом решаема (несколько усугубляется тем, что эти файлы подписаны предполагаю через каталог .cat - естественно своего билда а не напрямую, где лежит пока не нашел). Еще конечно риск перезаписи системой при каком-либо будущем апдейте, это понятно. Но рассматриваем разные варианты, в том числе поганые. И вернемся к сути вопроса. Особенности: Owner=TrustedInstaller Админ прав на замену не имеет Плюс еще в штатном режиме системы "Используется другим приложением". Алгоритм "ручками" такой: 1) Меняем Owner=TrustedInstaller -> Owner=Administrators 2) Даем Administrators полный доступ 3) Перегружаем OS в безопасный режим 4) Заменяем файл на требуемый 5) Перегружаем OS в обычный режим По хорошему еще: 6) 7) первые два пункта в обратной последовательности, т.е. отнять права у админа и восстановить TrustedInstaller С первыми двумя пунктами (владелец и права) у меня лично как бы проблем нет (при условии что прога запушена под админом естественно). А вот насчет программной замены файла через перезагрузку (а иначе система его не отпустит) - не сталкивался. Безопасный режим понятно не нужен (если программно). А нужен механизм типа того что делает Windows Update, а он как-то "заряжает" файлы на замену сразу после перезагрузки системы. Есть идеи? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2016, 06:12 |
|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
https://technet.microsoft.com/ru-ru/sysinternals/pendmoves ответы можно поискать тут, можно вроде через PowerShell еще ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2016, 15:30 |
|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
Roman Mejtes, тут коротко о магии ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2016, 16:11 |
|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
Дмитрий77Штатный MS драйвер что за драйвер и что испортили? Дмитрий77Я с MS общаться напрямую не умею ничего сверхестественного в этом нет ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2016, 16:20 |
|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
ИзопропилДмитрий77Штатный MS драйвер что за драйвер и что испортили? Не знаю что у ТС испортили, у меня стал вылетать эксель при генерации через COM на форматировании вывода на бумагу (.ActiveSheet.PageSetup ...), полечил сменой дефолтного принтера. Дефолтным стоял старенький Canon расшаренный на другом компе. До обновления винды проблем не было. Много чего перепортили этим обновлением. Даже планировщик умудрились сломать . ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2016, 16:50 |
|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
ИзопропилДмитрий77Штатный MS драйвер что за драйвер и что испортили? modem.sys Читай если интересно: 56K Modem missing Unimodem Audio Device after update to Windows 10 Build 10586 Первой (описание проблемы) и последней (типа решение на коленках) страницы для понимания достаточно, все остальное - плач пострадавших. Смысл, что с этим багом ни один голосовой модем (неважно какой производитель и что у него в драйвере самого модема) не будет делать голос через TAPI. ИзопропилДмитрий77Я с MS общаться напрямую не умею ничего сверхестественного в этом нет И как это делать? Чтобы это возымело эффект? Эффектом должно быть очередное обновление, устраняющее проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2016, 16:58 |
|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
buserRoman Mejtes, тут коротко о магии Наверно даже лучше вот это: How to replace in-use files at Windows restart 1.Start Registry Editor (Regedt32.exe). 2.Locate the following key in the Windows registry: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 3.Create a new value by using the following information: Value name: PendingFileRenameOperations Data type : REG_MULTI_SZ Value data: \??\c:\temp\win32k.sys !\??\c:\winnt\system32\win32k.s Note that the value data is typed on two separate lines. 4.Quit Registry Editor. 5.Restart the computer. Хотя счас перечитал твою ссылку, тоже самое. Тем более это выполняется очевидно от имени System, а System кстати имеет "полные права" на интересуемый файл. Т.е. менять владельца и права на файл не надо, гимора меньше. Будет настроение, попробую. Если это сработает, то можно сделать и программно. Метод только этот (замена системного файла) дюже дерьмоватый. Риск обновления более новым файлом (после принудительной замены) не так страшен как риск остаться вообще без модема (что сильно хуже)(а не только без его голосовых функций) если в каком нибудь будущем билде трюк с заменой файла не сработает, старый файл напр. окажется несовместимым (вряд ли конечно, MS с этими старыми драйверами только тупо меняет "версии", иногда что-нибудь случайно портят как в данном случае). Поэтому все же основные ставки на то что MS таки исправит баг (но за 9 месяцев пока не исправил! плохо). До кучи, м.б. кто знает? C:\Windows\System32\drivers\modem.sys Где искать файл каталога (.cat) который отвечает за цифровую подпись файла (сам файл не подписан). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2016, 18:25 |
|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
Дмитрий77, повеселил . Vanessa доставляет )) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2016, 19:13 |
|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
Изопропилповеселил . Vanessa доставляет )) то то и оно люди уже год почти на стенку лезут и чет им там невесело, а ты говоришь "ничего сверхестественного" слабая надежда только на вот это (6-я страница) http://answers.microsoft.com/en-us/windows/forum/windows_10-hardware/56k-modem-missing-unimodem-audio-device-after/7a53af94-21fe-4352-80ec-b27fb3dc5886?page=6 charlestekWell for some reason, I wasn't listening to my own advice that normally the volunteer moderators can't pass this to the proper people, or there maybe a backlog of stuff Microsoft cares less about. In any case, my initial request went to a VP who used to run the .Net division, who usually is good at knowing someone to find the right person/department, so this got passed to a few people and one of these people said they would ensure that this gets to the right person, but it may take a number of days . I indicated that the target person should read this forum thread, so at least we have been self documenting the issue in detail. So like I said, fingers crossed, but I'm not celebrating yet. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2016, 19:48 |
|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
buserRoman Mejtes, тут коротко о магии Я попытался: MoveFileEx function Ключ то оно в реестре создает, но в зависимости от пути может вообще не сработать, далее конкретно MoveFileEx умничает, т.е. переименовывает System32 в SysWow64 при записи в реестр (ну в 64-битной компиляции не переименовывает). Но самое поганое, это то что если и удалось переименовать modem.sys -> modem_back.sys и подсунуть новый modem.sys, то использоваться будет modem_back.sys, драйвер грузится до этого горе-переименователя при старте. Хотя отсюда рецепт (без "безопасных" режимов): 1) переименовать modem.sys -> modem_back.sys 2) подкинуть новый modem.sys 3) перегрузить систему 4) удалить modem_back.sys Или еще проще(без перезагрузки) 1) "отключить" все модемы в системе ("отключить" в диспетчере устройств, devcon.exe или SetupDi..-функции это умеют) 2) заменить файл 3) "включить" все модемы Энто все работает. Ну и замену владельца и прав на файл (желательно с обратной процедурой) никто не отменял. Как-то так, а это все уже программно из-под админа решаемо. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 07:57 |
|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
Дмитрий771) переименовать modem.sys -> modem_back.sys 1.1) скопировать права с modem_back.sys 2) подкинуть новый modem.sys 2.1) дать скопированные права на modem.sys 3) перегрузить систему 4) удалить modem_back.sys ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 08:02 |
|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
Дмитрий77MS умудрился его непреднамеренно испортить в Windows10 где-то в начале года с очередным обновлением (в изначальном оф. релизе проблем не было).Отказаться от поддержки своей программы в Windows 10, сославшись на факт ошибочных действий со стороны Microsoft? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 08:07 |
|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
Алексей КДмитрий77MS умудрился его непреднамеренно испортить в Windows10 где-то в начале года с очередным обновлением (в изначальном оф. релизе проблем не было).Отказаться от поддержки своей программы в Windows 10, сославшись на факт ошибочных действий со стороны Microsoft? Ну скорее от поддержки оборудования, несовместимого с вин10 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 08:27 |
|
Программно заменить системный файл
|
|||
---|---|---|---|
#18+
Cat2Дмитрий771) переименовать modem.sys -> modem_back.sys 1.1) скопировать права с modem_back.sys 2) подкинуть новый modem.sys 2.1) дать скопированные права на modem.sys 3) перегрузить систему 4) удалить modem_back.sys Не, так не получится. Первые два пункта по любому должны быть: 1) Меняем Owner=TrustedInstaller -> Owner=Administrators 2) Даем Administrators полный доступ Иначе не переименуешь. Последние два N-1)Отнимаем у Administrators полный доступ N)Меняем Owner=Administrators->Owner=TrustedInstaller Но последние 2 можно и не делать (на совести того кто меняет файл), на работоспособность не повлияют. И перезагрузка не нужна как я сказал, девайсы отключаются, файл не используется и его можно поменять без переименований. Потом включаются. Всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 09:02 |
|
|
start [/forum/topic.php?fid=20&msg=39320653&tid=1400311]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 260ms |
total: | 404ms |
0 / 0 |