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

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

Ответить
Настройки темы
CMD/BAT - Удалить корявые ассоциации у всех юзеров

Ветеран


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

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


вопрос возник, к которому не особо представляю, как подойти:

есть куча машин, на каждой от одного до 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-ом удалённо исполнял. Но в рег-файлах вроде регулярные выражения не используются?
Как тогда?
Некий батник, который спрашивает на машине всех юзеров, и подставляет по списку их ИД как переменную в предлагаемые значения реестра? Сначала цикл списка машин, потом создание списка юзеров и цикл юзеров?
Или это можно организовать как-то более простым способом, не удаляя гланды через прямую кишку колоноскопом?

Отправлено: 11:02, 21-08-2018

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Цитата bredych:
в самом setacl хелп микроскопический »
Я бы так не сказал.

Цитата:
Trustee

-actn trustee -trst “n1:Trustee1[;n2:Trustee2];ta:TrusteeAction[;w:What]”
Removes Trustee1‘s ACEs, or
replaces Trustee1 within ACEs with Trustee2, or
copies ACEs from Trustee1 to Trustee2.
Multiple trustees may be specified like this: -actn trustee -trst "n1:UserA;n2:UserB;ta:cpytrst" -trst "n1:UserX;n2:UserY;ta:cpytrst"

or (new in SetACL 3.0)

-actn trustee -trst “csv:TrusteeInputFile;ta:TrusteeAction[;w:What]”
Removes ACEs with specified trustees, replaces trustees within ACEs or copies ACEs to different trustees. Input is read from TrusteeInputFile.
Цитата bredych:
глобальные политики через домен я выставлять не имею права, этим занимается организация выше нашей. »
А эскалировать запрос им?
Вы админ на клиентских тачках в сети?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:38, 24-08-2018 | #11



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

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


Ветеран


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

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


спасибо, тут я пытался вызвать хелп в консоли )
Но теперь с правами не понимаю - если в этой строке
Код: Выделить весь код
-ot reg -actn trustee -trst n1:voodoomsrlaptop\voodoomsr;ta:remtrst;w:dacl
trust action - remove trust, what - delete access control enrty - в чем смысл двукратного повторения? я логику синтаксиса не понимаю (
Равно как и 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 раздела имеют, как понимаю, некое случайное значение. Оно у всех разное.
Туда ключи писать обязательно для корректной работы? или можно пропустить? И если пропускать нельзя, как наиболее кратким путем запросить и подставить это значение в путь?

Последний раз редактировалось bredych, 29-08-2018 в 15:04.


Отправлено: 11:05, 28-08-2018 | #12


Ветеран


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

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


кстати, а 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

Последний раз редактировалось bredych, 30-08-2018 в 16:22.


Отправлено: 11:32, 30-08-2018 | #13



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - как удалить ассоциации файла в Windows 8.1 yumrukuz Microsoft Windows 8 и 8.1 3 10-11-2016 23:58
Любой язык - [решено] удалить старые профили юзеров Опиум Скриптовые языки администрирования Windows 12 25-04-2016 16:02
2008 R2 - Удалить всех доменных юзеров из группы Администраторы с помощью GPO nikitos435 Windows Server 2008/2008 R2 13 16-05-2012 18:00
Помогите с импортом двиков реестра для всех юзеров romanvrsk Автоматическая установка Windows 2000/XP/2003 5 12-11-2010 12:32
корявые шрифты luser Microsoft Windows 95/98/Me (архив) 6 26-01-2003 20:04




 
Переход