Если у вас при установке или запуске какой-либо программы возникла Ошибка 1719. "Не удалось получить доступ к службе установщика Windows", то скорее всего проблема с msiexec, данный
bat файл копирует заранее подготовленный "здоровый" msiexec и библиотеки на проблемный пк, подменяя
права и владельца файлов. Запускать от имени администратора. Возможно потребуется перезагрузка.
Для Windows 32bit (использовать файлы msiexec.exe, msi.dll, msihnd.dll той же разрядности)
rem останавливаем службу msiserver
net stop msiserver
rem меняем владельца системных файлов, иначе копирование завершится с ошибкой
takeown /s %computername% /f %systemroot%\System32\msiexec.exe /A
takeown /s %computername% /f %systemroot%\SysWOW64\msiexec.exe /A
takeown /s %computername% /f %systemroot%\System32\msi.dll /A
takeown /s %computername% /f %systemroot%\SysWOW64\msi.dll /A
takeown /s %computername% /f %systemroot%\System32\msihnd.dll /A
takeown /s %computername% /f %systemroot%\SysWOW64\msihnd.dll /A
rem заменяем права (указать группу с административными правами)
cacls %systemroot%\System32\msiexec.exe /e /p "Администраторы":F
cacls %systemroot%\SysWOW64\msiexec.exe /e /p "Администраторы":F
cacls %systemroot%\System32\msi.dll /e /p "Администраторы":F
cacls %systemroot%\SysWOW64\msi.dll /e /p "Администраторы":F
cacls %systemroot%\System32\msihnd.dll /e /p "Администраторы":F
cacls %systemroot%\SysWOW64\msihnd.dll /e /p "Администраторы":F
rem переименовываем не рабочие файлы
ren %systemroot%\System32\msiexec.exe msiexec.exe_
ren %systemroot%\SysWOW64\msiexec.exe msiexec.exe_
ren %systemroot%\System32\msi.dll msi.dll_
ren %systemroot%\SysWOW64\msi.dll msi.dll_
ren %systemroot%\System32\msihnd.dll msihnd.dll_
ren %systemroot%\SysWOW64\msihnd.dll msihnd.dll_
rem копирование рабочих файлов
copy \\ваш_путь\32битный файл\msiexec.exe %systemroot%\System32\msiexec.exe
copy \\ваш_путь\64битный файл\msiexec.exe %systemroot%\SysWOW64\msiexec.exe
copy \\ваш_путь\32битный файл\msi.dll %systemroot%\System32\msi.dll
copy \\ваш_путь\64битный файл\msi.dll %systemroot%\SysWOW64\msi.dll
copy \\ваш_путь\32битный файл\msihnd.dll %systemroot%\System32\msihnd.dll
copy \\ваш_путь\64битный файл\msihnd.dll %systemroot%\SysWOW64\msihnd.dll
rem перерегистрация msiexec
%windir%\system32\msiexec.exe /unregister
%windir%\syswow64\msiexec.exe /unregister
%windir%\system32\msiexec.exe /regserver
%windir%\syswow64\msiexec.exe /regserver
rem запускаем службу msiserver
net start msiserver
Для Windows 32bit (использовать файлы msiexec.exe, msi.dll, msihnd.dll той же разрядности)
--------------------------------------------------------------------------------------------------------------------------
@echo on
rem останавливаем службу msiserver
net stop msiserver
rem меняем владельца системных файлов, иначе копирование завершится с ошибкой
takeown /s %computername% /f %systemroot%\System32\msiexec.exe /A
takeown /s %computername% /f %systemroot%\System32\msi.dll /A
takeown /s %computername% /f %systemroot%\System32\msihnd.dll /A
rem заменяем права (указать группу с административными правами)
cacls %systemroot%\System32\msiexec.exe /e /p "Администраторы":F
cacls %systemroot%\System32\msi.dll /e /p "Администраторы":F
cacls %systemroot%\System32\msihnd.dll /e /p "Администраторы":F
rem переименовываем не рабочие файлы
ren %systemroot%\System32\msiexec.exe msiexec.exe_
ren %systemroot%\System32\msi.dll msi.dll_
ren %systemroot%\System32\msihnd.dll msihnd.dll_
rem копирование рабочих файлов
copy \\ваш_путь\msiexec.exe %systemroot%\System32\msiexec.exe
copy \\ваш_путь\msi.dll %systemroot%\System32\msi.dll
copy \\ваш_путь\msihnd.dll %systemroot%\System32\msihnd.dll
rem перерегистрация msiexec
%windir%\system32\msiexec.exe /unregister
%windir%\system32\msiexec.exe /regserver
rem запускаем службу msiserver
net start msiserver
@echo on
rem останавливаем службу msiserver
net stop msiserver
rem меняем владельца системных файлов, иначе копирование завершится с ошибкой
takeown /s %computername% /f %systemroot%\System32\msiexec.exe /A
takeown /s %computername% /f %systemroot%\System32\msi.dll /A
takeown /s %computername% /f %systemroot%\System32\msihnd.dll /A
rem заменяем права (указать группу с административными правами)
cacls %systemroot%\System32\msiexec.exe /e /p "Администраторы":F
cacls %systemroot%\System32\msi.dll /e /p "Администраторы":F
cacls %systemroot%\System32\msihnd.dll /e /p "Администраторы":F
rem переименовываем не рабочие файлы
ren %systemroot%\System32\msiexec.exe msiexec.exe_
ren %systemroot%\System32\msi.dll msi.dll_
ren %systemroot%\System32\msihnd.dll msihnd.dll_
rem копирование рабочих файлов
copy \\ваш_путь\msiexec.exe %systemroot%\System32\msiexec.exe
copy \\ваш_путь\msi.dll %systemroot%\System32\msi.dll
copy \\ваш_путь\msihnd.dll %systemroot%\System32\msihnd.dll
rem перерегистрация msiexec
%windir%\system32\msiexec.exe /unregister
%windir%\system32\msiexec.exe /regserver
rem запускаем службу msiserver
net start msiserver
--------------------------------------------------------------------------------------------------------------------------
Для Windows 64bit (используются файлы 32 и 64 разрядности)
--------------------------------------------------------------------------------------------------------------------------
@echo onrem останавливаем службу msiserver
net stop msiserver
rem меняем владельца системных файлов, иначе копирование завершится с ошибкой
takeown /s %computername% /f %systemroot%\System32\msiexec.exe /A
takeown /s %computername% /f %systemroot%\SysWOW64\msiexec.exe /A
takeown /s %computername% /f %systemroot%\System32\msi.dll /A
takeown /s %computername% /f %systemroot%\SysWOW64\msi.dll /A
takeown /s %computername% /f %systemroot%\System32\msihnd.dll /A
takeown /s %computername% /f %systemroot%\SysWOW64\msihnd.dll /A
rem заменяем права (указать группу с административными правами)
cacls %systemroot%\System32\msiexec.exe /e /p "Администраторы":F
cacls %systemroot%\SysWOW64\msiexec.exe /e /p "Администраторы":F
cacls %systemroot%\System32\msi.dll /e /p "Администраторы":F
cacls %systemroot%\SysWOW64\msi.dll /e /p "Администраторы":F
cacls %systemroot%\System32\msihnd.dll /e /p "Администраторы":F
cacls %systemroot%\SysWOW64\msihnd.dll /e /p "Администраторы":F
rem переименовываем не рабочие файлы
ren %systemroot%\System32\msiexec.exe msiexec.exe_
ren %systemroot%\SysWOW64\msiexec.exe msiexec.exe_
ren %systemroot%\System32\msi.dll msi.dll_
ren %systemroot%\SysWOW64\msi.dll msi.dll_
ren %systemroot%\System32\msihnd.dll msihnd.dll_
ren %systemroot%\SysWOW64\msihnd.dll msihnd.dll_
rem копирование рабочих файлов
copy \\ваш_путь\32битный файл\msiexec.exe %systemroot%\System32\msiexec.exe
copy \\ваш_путь\64битный файл\msiexec.exe %systemroot%\SysWOW64\msiexec.exe
copy \\ваш_путь\32битный файл\msi.dll %systemroot%\System32\msi.dll
copy \\ваш_путь\64битный файл\msi.dll %systemroot%\SysWOW64\msi.dll
copy \\ваш_путь\32битный файл\msihnd.dll %systemroot%\System32\msihnd.dll
copy \\ваш_путь\64битный файл\msihnd.dll %systemroot%\SysWOW64\msihnd.dll
rem перерегистрация msiexec
%windir%\system32\msiexec.exe /unregister
%windir%\syswow64\msiexec.exe /unregister
%windir%\system32\msiexec.exe /regserver
%windir%\syswow64\msiexec.exe /regserver
rem запускаем службу msiserver
net start msiserver
--------------------------------------------------------------------------------------------------------------------------
Комментариев нет:
Отправить комментарий