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

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

Ответить
Настройки темы
Любой язык - Внесение изменений в реестр всех пользователей ПК

Ветеран


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

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


Всем известен способ
Код: Выделить весь код
sc config SensrSvc start= disabled
однако в windows 10 есть некоторые "защищенные" службы. Которые ни через интерфейс, ни батником не удаляются, Access denied даже при запуске с elevated
Я так понимаю, они являются ветками реестра с правами только какому-то специфическому юзеру, а не админу. Или неправ?

Собственно, вопросы -
1. права на какое именно место должны меняться, на саму ветку службы, на какие-то ключи в ней?
(давать права на весь куст реестра и снижать защиту не хочу)
И как это в батнике провернуть, чтоб не заниматься онанизмом с последовательным прогоном его же от имени разных юзеров?

2. есть ли возможность в батнике указать не всё имя, а часть? Некоторые службы генерятся с рандомным окончанием названия, типа
Код: Выделить весь код
nazvanie sluzby_1234dbr567
-вручную уберешь, а деплойнуть нельзя. на другой машине уже иное имя будет.

зачем это мне - вин10 поставляется с некоторыми предустановленными свистоперделками. Типа того же скайпа. А у нас его нельзя. И игрушки типа того же xbox, и еще кучка ..

что пробовал - совет с https://stackoverflow.com/questions/...e-a-batch-file
- результат выше, нулевой.

Отправлено: 20:42, 13-03-2020

 

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

fascinating rhythm


Moderator


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

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


Удалять службы в этой ситуации - богатая идея, типа удаления программ путём стирания их файлов.

В Powershell есть команда Get-AppxPackage, выводящая список встроенных приложений, и Remove-AppxPackage, которая эти программы корректно удаляет.

Подробнее можно почитать в блоге Vadikan-а: https://www.outsidethebox.ms/14267/

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

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

Отправлено: 20:50, 13-03-2020 | #2



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

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


(*.*)


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

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


bredych, развертывайте образы без ненужных приложений https://www.outsidethebox.ms/19177/#_Toc531106447

-------
Канал Windows 11, etc | Чат @winsiders

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

Отправлено: 10:20, 14-03-2020 | #3


Ветеран


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

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


NB! Безотносительно изложенного в двух предыдущих сообщениях коллег.

Цитата bredych:
2. есть ли возможность в батнике указать не всё имя, а часть? Некоторые службы генерятся с рандомным окончанием названия »
Насчёт именно пакетного файла — под вопросом, надо знать набор допустимых символов в именах служб (я не искал такой информации). А так — ищется перечень имён служб по маске, затем каждое имя из найденного перечня передаётся потребным командам. Теоретически годится пакетный файл («for /f … %%i in (`wmic.exe Service … Name like 'SensrSvc_%%') do sc.exe config "%%~i" start= disabled»). Гарантированно сгодятся WSH и PowerShell, где сие реализуется ещё проще.

Отправлено: 14:45, 14-03-2020 | #4


Ветеран


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

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


Цитата Vadikan:
развертывайте образы без ненужных приложений https://www.outsidethebox.ms/19177/#_Toc531106447 »
спасибо, гораздо более интересный путь через PS

А если оно уже развернуто, возможно ли скомбинировать скрипт из ссылки
со скриптом из https://www.outsidethebox.ms/14267/ в плане
вырезать
Код: Выделить весь код
#путь к подключенному образу
$mountpath = "C:\mount"
вместо него добавив -Online в команды
Get-AppxProvisionedPackage -Online | ForEach-Object ...
Get-AppXPackage -Online | ForEach-Object ...

?

И как в уже развернутой вносить изменения в дефолт профиль? Именно, чтоб не повторять процедуры при подключении каждого нового юзера к тому же компу. Ссылки на http://www.oszone.net/6167 я видел, но хотелось бы решить в виде скрипта, чтоб не играться каждый раз с подключением-отключением кустов реестра вручную

Отправлено: 17:02, 16-03-2020 | #5


Ветеран


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

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


Цитата bredych:
И как в уже развернутой вносить изменения в дефолт профиль? »
Да так же — один раз подгрузить куст, содержащий профиль пользователя по умолчанию, «окучить» его, затем выгрузить.

Цитата bredych:
Ссылки на http://www.oszone.net/6167 я видел, но хотелось бы решить в виде скрипта, чтоб не играться каждый раз с подключением-отключением кустов реестра вручную »
Там же есть образец скрипта.

Отправлено: 21:03, 16-03-2020 | #6


Ветеран


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

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


Цитата Iska:
Там же есть образец скрипта. »
блин.. недочитал, подумал, там только переименование путей, чтоб твик корректно импортнулся, а подключать кусты вручную.

И да, почему в примере
Код: Выделить весь код
Get-AppxProvisionedPackage -Online | Where-Object {$_.DisplayName -CNotLike '*Store*' -and $_.DisplayName -CNotLike '*Calc*' -and $_.DisplayName -CNotLike '*ScreenSketch*'} | Remove-AppxProvisionedPackage -Online
Get-AppXPackage | Where-Object {$_.Name -CNotLike '*Store*' -and $_.Name -CNotLike '*Calc*' -and $_.Name -CNotLike '*ScreenSketch*'} | Remove-AppxPackage
в первом случае ключ -online присутствует,а во втором - нет? Или Get-AppXPackage в любом случае относится только к текущему юзеру, но никак не к чему-либо еще?

Отправлено: 23:05, 16-03-2020 | #7


Ветеран


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

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


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

Отправлено: 11:43, 17-03-2020 | #8


(*.*)


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

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


Цитата bredych:
И да, почему в примере в первом случае ключ -online присутствует,а во втором - нет? »
Потому что для первой команды удаляются подготовленные в системной учетной записи пакеты на онлайн системе (запущенной), нежели из некого образа WIM. А вторая команда удаляет пакеты из текущей учетной записи. Это написано в статье https://www.outsidethebox.ms/14267/#_Toc342245006

Цитата bredych:
..и кстати, скрипт вываливается. Даже если создать от админа консоль и в ней запустить, что-то красным пишет, вываливается и закрывает консоль »
Вообще, команды для удаления из образа (скрипт) и живой системы немного разные, вам надо вникнуть в их содержимое. Мне трудно сказать, как вы совместили эти две вещи и что вообще вы пытаетесь делать. Потому что вы об этом не рассказываете внятно :)

Думаю, вам надо внятно и подробно описать задачу, а дальше вам уж как-нибудь скрипт соберут тут...

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 14:02, 17-03-2020 | #9


Ветеран


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

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


Цитата Vadikan:
Вообще, команды для удаления из образа (скрипт) и живой системы немного разные, вам надо вникнуть в их содержимое. »
но там логика вполне очевидная, и вполне согласуется с комментариями.
Единственное, что могло бы затыкать (и, вероятно, затыкает) - это что даже из-под админа ntuser.dat файлы других юзеров при попытке подгрузить не видны.

Это если речь про именно кусок скрипта

Код: Выделить весь код
:: Извлекаем из реестра полный путь к папке, содержащей профили пользователей
for /f "usebackq tokens=3,3* delims==    " %%i in (`reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory`) do set profiles=%%i
:: Полученный путь используем в качестве новой переменной %profiles%
for /f "usebackq delims==" %%i in (`echo %profiles%`) do set profiles=%%i
:: Для всех профилей пользователей (кроме All Users и %Username%) поочередно загружаем пользовательский
 :: куст реестра, представляющий собой файл NTUSER.DAT и импортируем в него заранее подготовленный
 :: REG-файл, содержащий твики реестра.
For /F "usebackq tokens=* delims==" %%i in (`DIR /B /AD-S "%profiles%" ^| FINDSTR /V /B /I /C:"All Users" /C:"%username%"`) DO (
   takeown /F %%i /R /D y
   icacls /t /e /c /g admin:f
   reg load HKEY_USERS\Custom "%profiles%\%%i\NTUSER.DAT"
   reg import forbidApps.reg
   reg unload HKEY_USERS\Custom
)
я добавил взятие собственности и назначение себе прав, потому что часть папок юзеров создаются без права доступа мне, и мне приходилось вручную это проделывать. Только как указать, что это доменный юзер, а не локальный, что-то забыл напрочь, и гугл не спасает. В описаниях, напр, этом, понятие нелокального юзера просто отсутствует.

Кусок кода
Код: Выделить весь код
powershell -executionpolicy unrestricted -File RemAppx.ps1
- отрабатывает штатно, выводя на экран список удаляемых компонентов.
Но вон тот, с внесением в реестр запрета на установку их вновь всем последующим подключающимся к компу - что-то не желает. Теперь уже не закрывается, пишет
file not found
The syntax of command is incorrect

апд, еще забыл, удаление плиток в старт меню, мелочь, но неприятно..

Последний раз редактировалось bredych, 17-03-2020 в 16:14.


Отправлено: 15:52, 17-03-2020 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Внесение изменений в mysql БД cyberp1983 Скриптовые языки администрирования Windows 2 07-08-2018 07:25
VBA - VBA-Outlook внесение изменений в список входящих писем oleg_tt Программирование и базы данных 0 16-09-2016 13:29
CMD/BAT - [решено] получить права на внесение изменений в реестр icq99999999 Скриптовые языки администрирования Windows 2 30-09-2015 16:44
Внесение изменений в реестр Windows XP (автоматич. установка) pshik Автоматическая установка Windows 2000/XP/2003 3 18-06-2012 19:18
VBS/WSH/JS - Внесение изменений в реестр из под имени учётной записи администратора SANIOK_AV Скриптовые языки администрирования Windows 2 27-01-2009 11:03




 
Переход