![]() |
Удалить корявые ассоциации у всех юзеров
вопрос возник, к которому не особо представляю, как подойти:
есть куча машин, на каждой от одного до 3 десятков юзеракков. Юзеры по дури (не все, но достаточно) ассоциировали тип файла со всякой хренью. С акроридером, с вордом, медиаплейером, 7зипом, - у кого на что хватило фантазии. Я пробовал насильно пихать в классы стандартное HKEY\classes\.тип @="кем считать" + \software\microsoft\windows nt\current version\extensions "тип"="C:\\windows\\прога /ключ" и т.д. но в результате под админом всё ок, а под юзерскими акками - по-прежнему. Я сравнил реестры до и после, увидел выбор юзеров в ветках hkey_users\S-1-5-21-#################\software\classes\.тип @="тип_auto_file" hkey_users\S-1-5-21-#################\classes\.тип @="тип_auto_file" hkey_users\S-1-5-21-#################\software\microsoft\windows\current version\FileExts\.тип\UserChoice "hash"="#######" "ProgId"="Applications\\Acrord32.exe" Задача - удалить выбор юзера. У всех. (как понимаю, это заставить открывать по дефолту указанным в классах? И не придется юзерам прописывать отдельно их "выбор"? ) Я для навязывания ассоциации использовал тупо рег-файл, который psexec-ом удалённо исполнял. Но в рег-файлах вроде регулярные выражения не используются? Как тогда? Некий батник, который спрашивает на машине всех юзеров, и подставляет по списку их ИД как переменную в предлагаемые значения реестра? Сначала цикл списка машин, потом создание списка юзеров и цикл юзеров? Или это можно организовать как-то более простым способом, не удаляя гланды через прямую кишку колоноскопом? |
Цитата:
Цитата:
2. Есть раздел HKEY_CLASSES_ROOT, который собирается из раздела «на машину» HKEY_LOCAL_MACHINE\SOFTWARE\Classes и раздела «на пользователя» HKEY_CURRENT_USER\Software\Classes (на который, в реальности, отображается подраздел HKEY_USERS\<SID>_Classes), причём значения из последнего накладываются на значения из первого и перекрывают их (то есть, «пользовательские» настройки получают приоритет над «машинными»). Более полно и точно в статье Windows registry information for advanced users: Цитата:
Как удалить? Проще всего и надёжнее всего использовать групповую политику «на пользователя», и там либо логон-скриптом, либо предпочтениями. Если у Вас есть домен — всё делается в одном месте, в AD, если домена нет — придётся повозиться. |
|
bredych,
была у меня такая проблема в отделе бухгалтерии поставил всем Universal Viewer, вызывается (вернее открывает) из контекстного меню файла по ПКМ, при желании можно соответствия на нее прописать для всех *, а потом regом или патчем восстановить буквально там пару особенных, хотя мне это и не понадобилось. |
Цитата:
Я в том плане, если запихать рег куда-то и при логоне чтоб оно впиливалось текущему юзверю? Чтоб не придумывать проверку на ИД юзеров и прочий гемор alpap, установку стороннего софта "свыше" не одобряют, потому никаких костылей. Да и хочется хоть немного тупость свою в плане кодинга распинать ))) |
Цитата:
А с первой Цитата:
|
bredych, у Вас домен есть?
|
Цитата:
потому даже не рассматриваю вариант |
Как это знакомо…
Цитата:
И вариант — Вы предоставляете им logon-скрипт, а уже они пусть его назначают в политику — тоже невозможен по тем же причинам? |
возможно, но столько бюрократии, что мне проще самому сделать и не трахать мозг ни себе ни им ради такой мелочи, нехай делают что-то более крупное и срочное, что наверняка у них есть.
я всё пытаюсь прогуглить параметры из ссылки, Код:
-ot reg -actn trustee -trst n1:voodoomsrlaptop\voodoomsr;ta:remtrst;w:dacl а дальше предположения - ключ на полный доступ? или что это? что значит n1: далее, наверняка OU\account но что за параметры дальше - не понимаю. в самом setacl хелп микроскопический, в реге - тоже ничего такого.. |
Цитата:
Цитата:
Цитата:
Вы админ на клиентских тачках в сети? |
спасибо, тут я пытался вызвать хелп в консоли )
Но теперь с правами не понимаю - если в этой строке Код:
-ot reg -actn trustee -trst n1:voodoomsrlaptop\voodoomsr;ta:remtrst;w:dacl Равно как и action trustee -trst. Почему двукратно? зы, да, разумеется локального админа имею. ззы, тут подумал, что могз скис и с setacl не соображаю.. дисм через psexec сработает? хотя нет, дисм импорт тоже надо конкретному юзеру, это надо список юзеров лепить, фигня. Только через назначение дефолтных и удаление юзерчойсов.. И единственное что пока придумывается, - это лист папки юзеров в hkey_users, и всем удалять юзерчойс по циклу.. Кстати, еще 2 вопроса нарисовалось в связи с: 1) почему даже из-под админского (для домена) акка reg query \\machine_name\HKU ругается "network path was not found"? Хоть машина онлайн, имя верное. 2) в ключе описаний софта HKU\user_ID\Software\classes\Local settings\MuiCache\1cd\DA03165F последние 2 раздела имеют, как понимаю, некое случайное значение. Оно у всех разное. Туда ключи писать обязательно для корректной работы? или можно пропустить? И если пропускать нельзя, как наиболее кратким путем запросить и подставить это значение в путь? |
кстати, а setacl в параметрах допускает переменные?
типа, выражение Код:
setacl.exe -on HKU\%%G\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ttt\UserChoice -ot reg -actn trustee -trst n1:%%i\adminAccount;ta:remtrst;w:dacl где %%i - переменная имени компа или админский акк имеет по всему домену одинаковый сид и можно фиксированный сид вписывать? апд, в принципе, доменный акк вкину.. Но пока мыслится корявый код: - цикл перебора машин из списка, подключение к ним с админскими правами, - через psexec запуск там локального батника, который - рисует цикл перебора всех юзеров - в эхо закидывает строки с setacl и reg delete, подставляя переменные SID юзера в пути, эхо перенаправляется в батник - батник исполняется - в HKLM\software\classes\ рег-файлом вписываются ассоциации. по ощущению как-то слишком много костылей и код выходит сильно неуклюжий.. апд хм. а зачем рег, если можно FTYPE mytype=C:\windows\explorer.exe /idlist ^.adoc Assoc .adoc=CompressedFolder |
Время: 12:15. |
Время: 12:15.
© OSzone.net 2001-