Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
4 / 4 / 2
Регистрация: 10.12.2017
Сообщений: 40

Нет доступа к ветке реестра

16.01.2018, 12:29. Показов 3723. Ответов 5

Студворк — интернет-сервис помощи студентам
Всем доброго дня!

Пытаюсь дать пользователю право и полный доступ на удаление параметра HideBasedOnVelocityId из HKLM\SOFTWARE\Classes\Directory\shell\cm d
1) запуская программу от Администратора
2) открывая права на ветку в коде

В зарубежной сети нашел два случая-подтверждения рабочего кода, который подобен моему, но мой не хочет работать.
Все равно получаю ошибку прав доступа. Пожалуйста, подскажите где ошибка:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
            string user = Environment.UserDomainName + "\\" + Environment.UserName;
            RegistryKey LocalMachine = Registry.LocalMachine;
            RegistryKey rk = LocalMachine.OpenSubKey(@"SOFTWARE\Classes\Directory\shell\cmd",
            RegistryKeyPermissionCheck.ReadWriteSubTree,
            RegistryRights.ChangePermissions | RegistryRights.ReadKey);
            RegistrySecurity rs = new RegistrySecurity();
            rs.AddAccessRule(new RegistryAccessRule(user, RegistryRights.FullControl,
            InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
            PropagationFlags.InheritOnly, AccessControlType.Allow));
            rk.SetAccessControl(rs);
            rk = LocalMachine.OpenSubKey(@"SOFTWARE\Classes\Directory\shell\cmd",
            RegistryKeyPermissionCheck.ReadWriteSubTree, RegistryRights.FullControl);
            rs.SetOwner(new NTAccount(user));
            rk.SetAccessControl(rs);
            rk.DeleteValue("HideBasedOnVelocityId");
            rk.Close();
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.01.2018, 12:29
Ответы с готовыми решениями:

Как автоматизировать запрет доступа к ветке реестра ?
Всем привет ! Скажите возможно ли батником ,cmd или vbs атоматизировать этот процесс ? То есть выставлять именно запрет системе на создание...

Как программно назначить права доступа к определенной ветке реестра?
Подскажите, как программно задать права доступа на раздел в реестре? Чтобы пользователь не мог изменять параметры? Добавлено через 3...

Нет доступа к каталогу реестра
Столкнулся с ошибкой, не записываеться ключ в "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run". Пишет нет доступа....

5
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
17.01.2018, 00:15
Ты по справке пробовал делать?
Почему в 5 строке право RegistryRights.ReadKey, а не RegistryRights.DeleteKey?
1
4 / 4 / 2
Регистрация: 10.12.2017
Сообщений: 40
17.01.2018, 00:53  [ТС]
ViterAlex, спасибо, что отозвался!
Именно по этой справке начинал делать. И код рабочий. Но на некоторые параметры веток реестра и сами ветки эти правила как будто не распространяются. Отличный пример в топике с веткой HKLM\SOFTWARE\Classes\Directory\shell\cm d
Что характерно, SubInACL.exe также работает далеко не со всеми ключами. И мой тому пример.
"RegistryRights" не содержит определения для DeleteKey
Сделал просто Delete, не помогло. Все та же ошибка: "Запрошенный доступ к реестру запрещен".

Сведения
Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.

************** Текст исключения **************
System.Security.SecurityException: Запрошенный доступ к реестру запрещен.
в System.ThrowHelper.ThrowSecurityExceptio n(ExceptionResource resource)
в Microsoft.Win32.RegistryKey.InternalOpen SubKey(String name, RegistryKeyPermissionCheck permissionCheck, Int32 rights)
в WindowsFormsApp1.Form1.button2_Click(Obj ect sender, EventArgs e) в C:\Project\Form1.cs:строка 40
в System.Windows.Forms.Control.OnClick(Eve ntArgs e)
в System.Windows.Forms.Button.OnClick(Even tArgs e)
в System.Windows.Forms.Button.OnMouseUp(Mo useEventArgs mevent)
в System.Windows.Forms.Control.WmMouseUp(M essage& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Mes sage& m)
в System.Windows.Forms.ButtonBase.WndProc( Message& m)
в System.Windows.Forms.Button.WndProc(Mess age& m)
в System.Windows.Forms.NativeWindow.Callba ck(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Ошибкой завершилась сборка со следующим параметром Zone:
MyComputer


************** Загруженные сборки **************
mscorlib
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
WindowsFormsApp1
Версия сборки: 1.0.0.0
Версия Win32: 1.0.0.0
CodeBase: file:///C:/Project/bin/Release/WindowsFormsApp1.exe
----------------------------------------
System.Windows.Forms
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
mscorlib.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------
System.Windows.Forms.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------

************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.

Например:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

При включенной отладке JIT любое необрабатываемое исключение
пересылается отладчику JIT, зарегистрированному на данном компьютере,
вместо того чтобы обрабатываться данным диалоговым окном.
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
17.01.2018, 01:00
Не тот самый, посмотрел. Это какой-то особый раздел реестра. Владелец там TrustedInstaller, от имени которого устанавливаются системные обновления. Не знаю, что делать, сорри.
0
4 / 4 / 2
Регистрация: 10.12.2017
Сообщений: 40
17.01.2018, 01:56  [ТС]
ViterAlex, надеюсь, что кто-нибудь даст хотя бы альтернативу на vbs или js как крайние меры.
Ведь вручную спокойно любой под администратором может делать себя владельцем и давать полный доступ.
0
4 / 4 / 2
Регистрация: 10.12.2017
Сообщений: 40
17.02.2018, 01:13  [ТС]
Вот, нарыл исходники и саму прожку, которая может спокойно запускать реестр с правами Trusted Installer.
Также есть очень известный devxexec, который также позволяет спокойно открывать реестр и уже далее делать, что хочется.
Но первый пример интересней. Вроде все на c#, все есть, но разобраться не хватает знаний. Может кто вынет нужные строки, чтобы понять как использовать язык с#, чтобы получить право делать что-то в ветках Trusted Installer. Как-то умельцы это творят.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.02.2018, 01:13
Помогаю со студенческими работами здесь

Доступ к ветке реестра
Всем привет, проблемa в общем такая: У меня есть программа, которая обращается к вот такой ветке &quot;HKEY_LOCAL_MACHINE\SYSTEM\Uops...

Вопрос по ветке реестра
Нужна ли данная ветка реестра или ее лучше удалить? C:\WINDOWS\System32\hidserv.dll Активен Ключ реестра HKEY_LOCAL_MACHINE, ...

Доступ к ветке реестра
Есть что-то криминальное в том, если поставить только чтение и выполнение вот на эту ветку: HKLM\Software\Microsoft\Windows NT\Current...

Как в ветке реестра сослаться на файл
Нужно в контекстное меню файла добавить действие *команда* *имя файла*. Как в ключе реестра указать чтобы использовать полное имя файла...

Открыть редактор реестра в указанной ветке
нужен батник который открывает реестр по пути HKCR:local settings\software\microsoft\windows\shell\muicache\ заранее спасибо)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru