Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/35: Рейтинг темы: голосов - 35, средняя оценка - 4.63
 Аватар для magistr011
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164

Запуск regedit через psexec

08.06.2014, 17:24. Показов 6938. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать такое
Кликните здесь для просмотра всего текста
Хочу удалить кустик реестра к которому нет доступа (HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro lSet\Enum\USBSTOR\удалить всё )...
На одном из форумов мне помогло...
Кликните здесь для просмотра всего текста
качаешь это:
http://technet.microsoft.com/e... s/bb897553

делаешь так:
psexec.exe -i -s regedit.exe

Удаляешь все в что хошь
в нашем родном Builder C++?
Хочу сделать приложение.exe, чтобы открывался редактор реестра с такими ключами, но ничего не получается((

psexec.exe -i -s regedit.exe

не работает
C++
1
2
3
4
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        //system("psexec.exe -i -s regedit.exe");
}
не работает
C++
1
2
3
4
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        ShellExecute(Handle, "open", "psexec.exe -i -s regedit.exe", NULL, NULL, SW_RESTORE);
}
работает
скаченный файл помещаем в system32, помещаем строчку: psexec.exe -i -s regedit.exe в
1) Пуск->Найти программы и файлы->Enter (открывается редактор реестра).
2) Запускаем cmd.exe вставляем туда psexec.exe -i -s regedit.exe жмём Enter - запускается редактор реестра.
3) Можно через батник... start PsExec.exe -i -s regedit.exe - тоже работает редактор реестра.

Помогите сделать тоже самое через .exe в Builder C++
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.06.2014, 17:24
Ответы с готовыми решениями:

PsExec, regedit и автоматизация
Привет всем. Помогите, пожалуйста, написать скрипт, который будет автоматически подключаться через psexec к regedit'у и производить...

Запуск psexec с параметрами
В общем есть задача написать вин приложение вместо батника вот сам бат файл он копирует и устанавливает файлы по сети от заданного имени и...

При попытке запустить редактор реестра: "psexec -s -i regedit", выдает ошибку: "error deriving session key"
Вообщем, кто может помогите пожалуйста, как всегда пытаюсь зайти в редактор реестра: "psexec -s -i regedit", выдает ошибку:...

7
Модератор
 Аватар для D1973
9921 / 6457 / 2457
Регистрация: 21.01.2014
Сообщений: 27,405
Записей в блоге: 3
08.06.2014, 19:43
Так попробуй
C++
1
ShellExecute(0, "open", "psexec.exe", "-i -s regedit.exe", NULL, SW_SHOW);
0
 Аватар для magistr011
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
08.06.2014, 20:16  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
ShellExecute(0, "open", "psexec.exe", "-i -s regedit.exe", NULL, SW_SHOW);
так тоже не работает
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
08.06.2014, 21:53
Цитата Сообщение от magistr011 Посмотреть сообщение
Хочу удалить кустик реестра к которому нет доступа (HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro lSet\Enum\USBSTOR\уд алить всё )...
Кроме psexec, есть и другой, более традиционный способ - сделать себя
владельцем нужного ключа (используя привилегию SE_TAKE_OWNERSHIP_NAME и
права доступа WRITE_OWNER), затем дать себе права на удаление (WRITE_DAC),
после чего удалить ключ.

Добавлено через 1 минуту
Цитата Сообщение от magistr011 Посмотреть сообщение
так тоже не работает
Потому что psexec от имени админа надо запускать.
Иначе как он получит права системы ?
1
 Аватар для magistr011
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
09.06.2014, 19:28  [ТС]
Убежденный, ясно что опыта у тебя куча, только такие коменты наврряд ли помогут кому-нибудь... Или тут априори вопросы задают супер-программисты ? Ты бы лучше кусочек кода выложил в builder C++ а так лучше никому не стало... Что написал ты, что нет...

Это ненадо
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.06.2014, 21:31
magistr011, только не отвечай так каждому, кто не приведет готового кода. Помощники очень быстро кончатся. Тебе указали возможное решение, изучать его или нет - твое личное дело.

А по теме - просто добавь манифест для повышения прав при запуске программы. Или повышай права во время выполнения, что несколько сложнее.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
09.06.2014, 22:12
Лучший ответ Сообщение было отмечено magistr011 как решение

Решение

Цитата Сообщение от magistr011 Посмотреть сообщение
Ты бы лучше кусочек кода выложил в builder C++ а так лучше никому не стало...
И не станет.
А кода не будет, потому что его начнут бездумно копипастить, не вникая.

Псевдокод.

1) Получить привилегию SE_TAKE_OWNERSHIP_NAME.
Она позволяет открывать объект с правами на смену владельца (WRITE_OWNER),
даже если в разрешениях объекта это явно запрещено.

2) Сделать себя владельцем объекта.
Это очень просто. Например, создать SID группы "Администраторы" (в помощь
CreateWellKnownSid) и вызвать Set(Named)SecurityInfo на объекте, используя
этот SID для задания owner-а и флаг OWNER_SECURITY_INFORMATION.

3) Изменить разрешения объекта.
Владелец объекта может открывать его с правами на смену разрешений
(WRITE_DAC). Даже если в разрешениях объекта прописан полный запрет
всего и вся. В Win32 есть много функций работы с разрешениями, но
на мой взгляд, проще всего работать через SDDL, то есть, описать
нужные параметры на специальном языке, а затем с помощью функции
ConvertStringSecurityDescriptorToSecurit yDescriptor получить
готовенький дескриптор безопасности. Например, для данной задачи
подойдет такая строка: "D:P(A;CI;GA;;;BA)(A;CI;GR;;;WD)".

Расшифровка:

D:P - Protected DACL, защищенный список контроля доступа.
Защищенный - значит он не наследует разрешения родительского объекта.
Далее в скобках перечислены два элемента списка управления доступом:
(
A - Access Allowed, т.е. тип элемента = разрешающий (есть еще запрещающий);
CI - Container Inherit, дочерние контейнерные объекты будут наследовать
эти разрешения;
GA - GENERIC_ALL, полный доступ;
BA - данный элемент применяется для группы администраторов;
),
(
A - разрешающий тип;
CI - обсуждалось выше;
GR - GENERIC_READ - доступ только на чтение;
WD - World, группа "Все" (она же "Everyone").
)

В итоге администраторы получат полный доступ к объекту, а все
остальные только на чтение (здесь в SDDL-строке не хватает еще
информации о владельце и первичной группе, но для данного примера
они не нужны, так как используется только список контроля доступа).

Имея готовый PSECURITY_DESCRIPTOR, можно вытащить из него DACL и
задать для объекта - GetSecurityDescriptorDacl / Set(Named)SecurityInfo.
Для последней функции использовать флаг DACL_SECURITY_INFORMATION и
PROTECTED_DACL_SECURITY_INFORMATION (protected - чтобы объект не
наследовал разрешения родителя). Другой вариант - использовать
структуры типа TRUSTEE и EXPLICIT_ACCESS, а также низкоуровневые
функции для работы с ACL, например SetEntriesInAcl.

Если ключ содержит подключи, пункты 2 и 3 нужно проделать для них тоже.
Для этого можно рекурсивно обойти ветку с помощью RegEnumKeyEx.

Вот и все. Теперь можно спокойно удалять ключ и все его подключи
функцией SHDeleteKey. С помощью этого нехитрого механизма можно легко
удалять ключи, у которых очень строгие разрешения или вообще нет доступа,
где владелец SYSTEM и т.п.
2
 Аватар для magistr011
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
10.06.2014, 18:04  [ТС]
Да не хотел я никого ни обижать, ни оскорблять. Прошу простить, если задел. Помощи я прошу любой, но понятной, хотя бы материал для изучения... А т.к. я не имел дела с такого рода действиями я и спрашивал именно помощи в контексте "куска кода". Но, кстати, я рад и тому, что очень опытные программисты хоть и сложными для понимания конструкциями но помогают.

Спасибо!

Добавлено через 1 минуту
Убежденный, Ну вот за это спасибище!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2014, 18:04
Помогаю со студенческими работами здесь

Запуск программы на другом локальном компьютере с помощью PsExec
При запуске команды в PsExec он отвечает: не удаётся найти указанный файл. Хотя он 100% там. Нагуглил, что он якобы с 7-кой не дружит, а...

PsExec: Error establishing communication with PsExec service on LOCALHOST
Всем доброго времени суток. PsExec почему-то не желает исполнять процессы от имени системы / на рабочем столе WinLogon. При установке...

Подключение через PsExec
Доброго дня! Есть PSexec 1.98.0.0 через которую иногда подключаюсь. Но возникла проблема - не могу подключиться к компам с ХР. P.S. к...

Авто запуск сайта gangnamgame.net. Заблокирован regedit
После запуска windows запускается батник, который выводит на gangnamgame.net. Так же во время подготовки логов не мог запустить AutoLogger...

Открыть ключ через Regedit
Здравствуйте Уважаемые Форумчане! Сразу хочу предупредить, что я новичок. Подскажите пожалуйста, стоит задача открыть определенный...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru