Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
1359 / 729 / 66
Регистрация: 28.01.2011
Сообщений: 2,051
1

Как получить права на создание каталогов и подкаталогов в папке Windows

03.03.2012, 20:13. Просмотров 2646. Ответов 1
Метки нет (Все метки)

Цитата Сообщение от BRcr Посмотреть сообщение
право доступа на запись к папке Windows
Я уже раньше спрашивал про это так "как во время исполнения программы получить администраторские права на создание каталогов и подкаталогов в папке Windows?" ответа так и не дождался...
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2012, 20:13
Ответы с готовыми решениями:

Создание каталогов и подкаталогов с именами, составленными на основе текущей даты
Доброго всем времени суток ! Столкнулся с необходимостью создания BAT файла для работы в...

Создание в текущей папке каталогов
Мальчики помогите пожалуйста решить задачку. Сессия через неделю,не успеваю разобраться с ней ( ...

Создание BAT файла для создания архивов из файлов в папке включая содержимое ее подкаталогов
Доброго дня, уважаемые пользователи!! Прошу помощи ибо сил нет никаких уже) Имеется задание:...

Как вывести список всех каталогов и подкаталогов в ListBox?
Здравствуйте! Решил опробовать на себе C# (до этого базировался на Pascal). Все вроде не плохо, но...

1
4030 / 2320 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
03.03.2012, 22:35 2
Лучший ответ Сообщение было отмечено как решение

Решение

Потому что все не так просто и однозначно, как хотелось бы

Права папкам можно выставлять консольными коммандами:
Код
cacls "C:\test" /e /t /c /g Users:f  // права на полный доступ группе пользователей
cacls "C:\test" /e /t /c /g Пользователи:f  // или так, если винда русская
cacls "C:\test" /e /t /c /g Владимир:f  // полный доступ конкретному пользователю

// или с помощью более новой версии:
icacls "C:\test" /grant Владимир:f /t /c
Например, для текущего пользователя можно так:
C++
1
2
3
4
5
6
7
    char name[100] = {'\0'}, cmd[200] = {'\0'};
    unsigned long size = 100;
    GetUserName( name, &size );
    strcpy( cmd, "cacls \"C:\\test\" /e /t /c /g " );
    strcat( cmd, name );
    strcat( cmd, ":f" );
    system( cmd );
Или так:
C++
1
2
3
4
5
6
7
    char name[100] = {'\0'}, cmd[200] = {'\0'};
    unsigned long size = 100;
    GetUserName( name, &size );
    strcpy( cmd, "icacls \"C:\\test\" /grant " );
    strcat( cmd, name );
    strcat( cmd, ":f /t /c" );
    system( cmd );
Но все это не даст вам доступа к папке Windows

Если речь о системах до висты, где нет UAC, к примеру ХР, то там все просто: владельцем папки Windows является группа администраторов, и, ежели программка ваша запущена из-под учетки с администраторскими правами, то и доступ у вас есть.

Начиная с висты, владельцем папки Windows стал TrustedInstaller, а у группы администраторов нет полного доступа к ней. Соответственно, и доступ себе так просто не взять даже из-под учетки админа.
Для этого придется назначить владельцем этой папки, скажем, свою учетку, либо группу администраторов. Однако это приведет к серьезному падению безопасности системы - очень не советую так делать.

Делается это коммандой
Код
takeown /f "C:\Windows" /r /d y  // сделать владельцем текущего пользователя
takeown /f "C:\Windows" /a /r /d y  // сделать владельцем группу администраторов
А потом уж можно назначать себе права.

То есть в итоге как-то так:
C++
1
2
3
4
5
6
7
8
    char name[100] = {'\0'}, cmd[200] = {'\0'};
    unsigned long size = 100;
    GetUserName( name, &size );
    strcpy( cmd, "icacls \"C:\\Windows\" /grant " );
    strcat( cmd, name );
    strcat( cmd, ":f /t /c" );
    system( "takeown /f \"C:\\Windows\" /a /r /d y" );
    system( cmd );
Если программка наша не консольная, то можно все это в батник записать и выполнить.

И все - можно писать в заветную папку... однако, теперь наша система, увы, открыта для вирусов всех форм и размеров Так что стоит дважды подумать - а так ли оно нам надо?
3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2012, 22:35

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

Не удалось получить список каталогов на ftp в определенной папке
Приветствую, форумчане. Настроил я ftp сервер через filezilla. Права - полные (во всех папках)!...

Как установить права доступа к папке и всем файлам в папке?
Здравствуйте. Как установить права доступа к папке и всем файлам в папке? Для папки 555, для...

Как получить права администратора в Windows 7?
Программа должна запросить админские права (мне нужно поменять system time). Понял что это както...

Как получить права Админа на Windows XP SP3 (ERD Подвел.)
Доброго времени суток уважаемые коллеги! Столкнулся с ситуацией, где моих мозгов не...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.