Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - скрипт чистильщика системы от установленных обновлений ms office

Ответить
Настройки темы
CMD/BAT - скрипт чистильщика системы от установленных обновлений ms office

Аватара для specialist

Старожил


Сообщения: 406
Благодарности: 108


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: specialist
Дата: 12-10-2013
на одном из форумов написали скрипт чистильщика системы от установленных обновлений ms office
вкратце: выцепляет из реестра windows информацию об установленных офисных обновлениях и их именах в каталоге %windows%\installer , а потом безжалостно удаляет эти файлы и записи о них из реестра, в результате чего освобождается, в зависимости от выбранного набора приложений, от 500 мб до 2 гб свободного места на диске.

Код: Выделить весь код
@echo off
set "path=%SystemRoot%;%SystemRoot%\system32;%SystemRoot%\system32\wbem"
set "productmask=\\0000.109"
for /f "delims=" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData" 2^>nul ^| findstr "\S-"') do (
    for /f "delims=" %%j in ('reg query "%%i\products" 2^>nul ^| findstr  /r /c:"%productmask%"') do (
        for /f "tokens=2*" %%m in ('reg query "%%~j\InstallProperties" /v "LocalPackage" 2^>nul ^| findstr "REG_"') do (
del /f /q "%%~n"
reg delete "%%~j" /v "LocalPackage" /f
)
for /f "delims=" %%k in ('reg query "%%j\Patches" 2^>nul ^| findstr "Patches\\"') do (
for /f "tokens=2*" %%l in ('reg query "%%i\Patches\%%~nk" /v "LocalPackage" 2^>nul ^| findstr "REG_"') do (
del /f /q "%%~m"
reg delete "%%i\Patches\%%~nk" /f
reg delete "%%~k" /f
))))
Попробовал внедрить запуск батника в установщик офиса - не отрабатывает. То же самое получается если запустить батник напрямую из Total Commander. Если вставить в конец паузу ничего не показывает.

Если запустить батник из окна проводника вручную без прав администратора он пролетает с чем то вроде "недостаточно прав на данные операции" и ничего не удаляет - работает только если запустить ПКМ от имени Администратора из открытого окна проводника
Пробовал даже заворачивать батник в 7zip sfx и WinRar sfx с запросом запуска от Администратора (что раньше в случаях подобной необходимости помогало), однако и это не помогло.

Можно ли как то обойти проблему и автоматизировать запуск батника так чтобы он думал что его запускают от админа из окна проводника?

ps: Все проблемы были выявлены в windows 7/8
-----------------------------
pps последний вариант утилиты можно скачать здесь http://rghost.net/49322760

-------
Все что было создано руками и умом одного человека, может быть изменено по своему образу и подобию другим. ICQ: 560-361 Блог: repacksbyspecialist.blogspot.com


Отправлено: 20:22, 23-09-2013

 

Аватара для Fortress1

Пользователь


Сообщения: 137
Благодарности: 8

Профиль | Отправить PM | Цитировать


Может быть с помощью автоит)

ПО другому никак) Возможно дать команду для запуска от имени пользователя с правами администратора с введением пароля, если пароля нет то не получится

посмотрите команду runas

-------
http://nick-name.ru/forum5t0/Fortress.gif


Отправлено: 11:31, 24-09-2013 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для specialist

Старожил


Сообщения: 406
Благодарности: 108

Профиль | Отправить PM | Цитировать


уже делал ярлык для запуска с админскими правами и запускал его кликом по батнику
start "" clean.lnk
при этом происходит то же что и при запуске из Total Commander а именно ничего
однако если его запустить из окна проводника ПКМ от админа он так же отрабатывает как и clean.cmd приведенный выше
получается что все равно без явных действий пользователя (пкм от админа из окна проводника) ничего не работает... вобщем замкнутый порочный круг

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

может каких контролек echo можно наставить в тело цикла чтобы посмотреть что и где не отрабатывает...

-------
Все что было создано руками и умом одного человека, может быть изменено по своему образу и подобию другим. ICQ: 560-361 Блог: repacksbyspecialist.blogspot.com


Отправлено: 12:34, 24-09-2013 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


specialist, ОС у Вас какой разрядности? А какой разрядности Total Commander, а?! Sfx'ы Вы с какой разрядностью делали?!

Отправлено: 12:57, 24-09-2013 | #4


Аватара для specialist

Старожил


Сообщения: 406
Благодарности: 108

Профиль | Отправить PM | Цитировать


Цитата Iska:
ОС у Вас какой разрядности? А какой разрядности Total Commander, а?! Sfx'ы Вы с какой разрядностью делали?! »
ОS = x64 (пробовал и на x86) виртуалки vmware
TC = x86 (только для контраста, т.к. запуск будет в конечном счете из config.xml средствами установщика ms office)
sfx = x86 (нужно чтобы на любых разрядностях запускалось)

-------
Все что было создано руками и умом одного человека, может быть изменено по своему образу и подобию другим. ICQ: 560-361 Блог: repacksbyspecialist.blogspot.com


Отправлено: 13:08, 24-09-2013 | #5


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата specialist:
Если вставить в конец паузу ничего не показывает. »
Если действительно "ни чего", то скрипт где-то зависает и не доходит до паузы, а я думаю, что это не так и скрипт у Вас сразу вылетает на паузу, так?
На х64 ОС нужно и скрипт запускать из соответствующего приложения (х64 ТС, х64 SFX и т.д.).
Запустил его из x64 TC - отработал, а из х86 ТС окно консоли пусто, только сообщение от Pause.

Все del и reg delete закомментированы Echo. Портить рабочую систему желания нет.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:57, 24-09-2013 | #6


Аватара для specialist

Старожил


Сообщения: 406
Благодарности: 108

Профиль | Отправить PM | Цитировать


Цитата gora:
а я думаю, что это не так и скрипт у Вас сразу вылетает на паузу, так? »
да, верно, не так выразился. сразу вылетает на паузу.
Цитата gora:
Все del и reg delete закомментированы Echo. Портить рабочую систему желания нет. »
все верно, поэтому и мучаю виртуалки с установленным Office и созданным после этого снимком системы.
если запустить из окна проводника без ПКМ от админа скрипт пролетает с выдачей
Ошибка: Отказано в доступе
вероятно на каждую попытку удалить найденный через реестр файл.
сейчас еще раз все переделал и получилось следующее:
- если завернуть в 7-zip sfx x86 с MiscFlags="4" то при простом запуске из окна проводника на x64 ОС скрипт сразу идет до паузы, а на x86 ОС все отрабатывает
- если завернуть в 7-zip sfx x64 с MiscFlags="4" то при простом запуске из окна проводника на x64 ОС все отрабатывает, но при этом файл нельзя использовать файл на x86 системах

какие можно сделать выводы?
скрипт пытается воспользоваться не теми файлами for, reg, del (например берет их в c:\Windows\System32 когда нужно в c:\Windows\SysWOW64) ?
команда reg query в x64 ОС пытается искать нужные значения в HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Installer\UserData вместо HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData ?

что можно предпринять в целях универсализации желательно в виде одного файла для обеих разрядностей в свете открывшихся обстоятельств?

-------
Все что было создано руками и умом одного человека, может быть изменено по своему образу и подобию другим. ICQ: 560-361 Блог: repacksbyspecialist.blogspot.com


Отправлено: 18:57, 24-09-2013 | #7


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата specialist:
какие можно сделать выводы? »
При запуске в х86 среде скрипт использует х86 cmd.exe и reg.exe. Последний не видит х64 разделов реестра и не находит нужных разделов. Скрипт может не видеть и файлов, если они окажутся в "недоступных", для х86 cmd, папках
Цитата specialist:
что можно предпринять »
Используйте префикс x64\x86 или %%P для запуска скрипта из конфига x86 SFX.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:10, 24-09-2013 | #8


Аватара для specialist

Старожил


Сообщения: 406
Благодарности: 108

Профиль | Отправить PM | Цитировать


gora, действительно, поменял запуск на
RunProgram="x86:hidcon:Clean.cmd"
RunProgram="x64:hidcon:Clean.cmd"
в x86 7-zip sfx модуле и все заработало

Спасибо!

-------
Все что было создано руками и умом одного человека, может быть изменено по своему образу и подобию другим. ICQ: 560-361 Блог: repacksbyspecialist.blogspot.com


Отправлено: 19:49, 24-09-2013 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - скрипт чистильщика системы от установленных обновлений ms office

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Наборы - [OLD] MS Office 2010 PreSP2, MS Office 2007 PreSP4 и MS Office 2003 Rus PreSP4 sklart Наборы обновлений для Windows XP/2003/Windows 7 1397 20-04-2012 16:00
Установка - [решено] Проблемы с установкой MS Office 2007 и обновлений Lexxik Microsoft Windows 2000/XP 6 07-01-2011 22:06
2003/XP/2000 - [решено] Неполадки после установки обновлений MS Office XP viktoriyas Microsoft Office (Word, Excel, Outlook и т.д.) 2 03-02-2010 20:32
2003/XP/2000 - [решено] Пакет обеспечения совместимости MS Office 2000-2003 с файлами MS Office 2007 Alexander7 Microsoft Office (Word, Excel, Outlook и т.д.) 2 15-05-2008 11:47
Проблема установки обновлений от MS в рамках больших ЛВС alekseyIzh Microsoft Windows NT/2000/2003 6 12-08-2004 11:46




 
Переход