|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Нужен bat для удаления ИЗМЕНЁННЫХ папок и программ (ярлыков) из меню "Пуск-Программы" |
|
|
CMD/BAT - Нужен bat для удаления ИЗМЕНЁННЫХ папок и программ (ярлыков) из меню "Пуск-Программы"
|
Ветеран Сообщения: 2158 |
Нужен батник для поиска и удаления папок и программ (ярлыков) из меню "Пуск->Программы", организованный таким образом, чтобы можно было найти и удалить искомое, даже если пользователь изменил их дефолтное расположение и название.
|
|
Отправлено: 15:11, 26-02-2011 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Nun-Nun, Ваш вопрос не ясен.
Цитата Nun-Nun:
«и название» — тут придётся ориентироваться на свойство ярлыка target. Нужно будет знать это самое значение target — раз, исходное название и местоположение ярлыка — два. Во всяком случае, задача явно не для пакетных файлов, скорее это для Automation — WSH/PoSH/AutoIt. |
|
Отправлено: 11:16, 01-03-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2158
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата Iska:
|
||
------- Отправлено: 12:42, 01-03-2011 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Nun-Nun:
Примерно так: |
|
Отправлено: 15:05, 03-03-2011 | #4 |
Ветеран Сообщения: 2158
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
||
------- Отправлено: 15:45, 03-03-2011 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Nun-Nun:
Опишите подробнее Вашу ситуацию, может станет яснее. |
|
Отправлено: 18:14, 03-03-2011 | #6 |
Ветеран Сообщения: 2158
|
Профиль | Отправить PM | Цитировать Цитата Iska:
1) ничего не переименовывая, перетащить исходную папку установленной программы вместе с ярлыками в другую папку меню "Программы"; 2) перетащить ярлыки установленной программы (как переименовав, так и не переименовав) в другую папку меню "Программы", а исходную папку (например, того же "7-Zip") удалить; 3) не перетаскивая исходной папки установленной программы, только переименовать ярлыки; 4) не перетаскивая исходной папки установленной программы, переименовать её (папку) и (или) ярлыки в ней; 5) ничего не перетаскивая, переименовать только исходную папку установленной программы, не трогая названий ярлыков; 6) ничего не перетаскивая, переименовать и исходную папку установленной программы, и названия ярлыков; 7) переименовать и исходную папку установленной прграммы, и названия ярлыков, а также перетащить всё это в другую папку меню "Программы". Конечно предсказать пользовательские действия и причуды хотя и сложно, но во всех перечисленных вариантах единственное, что всегда будет оставаться неизменным это название исполняемого файла установленной программы. Поэтому на него и придётся ориентироваться. Таким образом, поставленная задача выглядит так: найти и обезвредить (соррри, - удалить) последствия этого пользовательского рукоблудия (удалить и ярлыки, и папку, в которой они оказались (если, конечно, это отдельная папка)). При этом, разумеется, необходимо исключить возможность удаления как самого меню "Программы", так и расположенных в нём стандартных папок типа "Стандартные", "Автозагрузка", "Администрирование", "Утилиты" и т.п. P.S. Уровень моих навыков в области написания bat-файлов пока ещё не на том уровне, чтобы решить подобную задачу самостоятельно, вот и приходится обращаться за помощью. |
|
------- Отправлено: 21:38, 03-03-2011 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Nun-Nun, задача в поставленном виде банально не решаема (разве что иметь предварительно подготовленным весь эталонный набор ярлыков). Но, дабы не предсказывать действия пользователей — придумали групповые политики, в данном случае это:
Политика "Локальный компьютер" Конфигурация пользователя Административные шаблоны Панель задач и меню "Пуск" Удалить контекстные меню перетаскивания для элементов меню "Пуск" Запретить изменение параметров панели задач и меню "Пуск" Запретить доступ к контекстному меню для панели задач Удаление значка доступа к программам и параметров по умолчанию из меню "Пуск" Если нет домена — для рабочей группы можно организовать распространение настроек политик посредством файлов реестра (это, конечно, не политики, но хотя бы так). Описание соответствия групповых политик можно взять из «gp.chm» из комплекта «Resource Kit» Windows 2000, или (для нынешних систем) отсюда: Download details: Group Policy Settings Reference for Windows and Windows Server, или, наконец, банально отсюда: Твики реестра (CHM) 1.9. По поводу же скрипта из #4, единственное, что могу предложить — поправить его так, дабы он удалял пустые папки, оставшиеся пустыми после удаления указанных ярлыков. Кстати, вопрос — перечень в «arrTargetPaths» у Вас длинный? Может, стоит сделать чтение данного перечня из текстового файла?! P.S. Наткнулся в Download details: Group Policy Settings Reference for Windows and Windows Server на весьма пользительную ссылку — Group Policy Search: указываем политику и сразу видим толкование, путь к политике в редакторе, применимость к ОС и параметр реестра, куда пишется данная политика при её применении. |
Последний раз редактировалось Iska, 03-03-2011 в 22:28. Причина: Дополнение про «Group Policy Search» Отправлено: 22:23, 03-03-2011 | #8 |
Ветеран Сообщения: 2158
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата Iska:
P.S. В идеале весь процесс работы по нахождению-удалению я вижу таким: при установке аддон запускает поиск по конкретному выражению в названиях папок и ярлыков: - если оно найдено в названии папки - удаление этой папки вместе с ярлыками; - если оно найдено только в названии ярлыка (ярлыков) - удаление этого ярлыка (ярлыков); - если после удаления ярлыка (ярлыков) папка осталась пустой - удаление этой папки (разумеется, если это не сама папка меню "Программы" или расположенные в ней типа "Стандартные", "Автозагрузка", "Администрирование", "Утилиты" и т.п.); - если ничего не найдено по конкретному выражению, то запуск поиска ярлыка (ярлыков) по названию исполняемого файла, при этом: - если такой ярлык найден - удаление этого ярлыка (если после удаления ярлыка папка осталась пустой - удаление папки (за исключением вышеназванных стандартных)). Вот, в принципе, так. |
||
------- Последний раз редактировалось Nun-Nun, 04-03-2011 в 11:35. Отправлено: 11:12, 04-03-2011 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Nun-Nun:
If objFolder.Files.Count = 0 And objFolder.SubFolders.Count = 0 Then 'objFolder.Delete True End If Цитата Nun-Nun:
P.S. Есть подозрение, что Вы не сможете его использовать при установке в виде Addon'ов в таком виде из-за «CreateObject("Shell.Application")». |
||
Отправлено: 07:08, 05-03-2011 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Как удалить ярлыки (в меню "Пуск" - "Программы", с рабочего стола, и т. д.) | Craager | Автоматическая установка Windows 2000/XP/2003 | 167 | 08-05-2015 02:50 | |
Интерфейс - [решено] Исчез список программ в подменю "Все программы" меню "Пуск" | sewell | Microsoft Windows 7 | 23 | 21-03-2011 16:51 | |
Установка - Удаление меню "Програмы" из меню "Пуск" | fragnat | Microsoft Windows 2000/XP | 2 | 07-02-2010 23:54 | |
Груп,Политика "программы" в меню "пуск" ??????????????????? | pushkin88 | Microsoft Windows NT/2000/2003 | 0 | 07-05-2009 20:19 | |
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") | submaster | Microsoft Windows NT/2000/2003 | 5 | 13-09-2006 12:29 |
|