Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Samrisbe
1352 / 722 / 66
Регистрация: 28.01.2011
Сообщений: 1,979
#1

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

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

Цитата Сообщение от BRcr Посмотреть сообщение
право доступа на запись к папке Windows
Я уже раньше спрашивал про это так "как во время исполнения программы получить администраторские права на создание каталогов и подкаталогов в папке Windows?" ответа так и не дождался...

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

0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2012, 20:13
Ответы с готовыми решениями:

Пользователь вводит каталог и надо узнать в нём размер всех каталогов и подкаталогов
Всем привет!Мужики спасайте. Есть такая задачка. Пользователь вводит каталог...

Как получить путь к системной папке Temp?
Здравствуйте!!! Подскажите пожалуйста, как получить путь к системной папке...

Хранение и модификация данных программы в папке Program Files (права доступа)
Добрый вечер, уважаемые. Встала передо мной следующая проблема, мой проект...

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

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

1
BRcr
4015 / 2305 / 291
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2012, 22:35

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

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

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


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

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

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