Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Копирование прав доступа с одного файла на другой, Не работает в WinServer 2012 
:(
    Опции темы
JohnJ2
Дата 10.3.2013, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 19.4.2009

Репутация: нет
Всего: 1



Доброе время суток! Привожу функцию копирования прав доступа с одного файла/папки другому:
Код

function CopyNTFSSecurity3(inFile, outFile: string): Boolean;
var
  psd : PSECURITY_DESCRIPTOR;
  dwSize: DWord;
begin
  Result := False;
  psd := nil;
  if not GetFileSecurity(PChar(inFile), OWNER_SECURITY_INFORMATION + GROUP_SECURITY_INFORMATION + DACL_SECURITY_INFORMATION, Pointer(1),
   0, dwSize) and (GetLastError = ERROR_INSUFFICIENT_BUFFER)
  then
  try
   psd := HeapAlloc(GetProcessHeap, 8, dwSize);
   if psd <> nil then
   begin
     if not (GetFileSecurity(PChar(inFile), OWNER_SECURITY_INFORMATION + GROUP_SECURITY_INFORMATION + DACL_SECURITY_INFORMATION, psd, dwSize, dwSize)) then begin
//       Log.Add('Не удалось получить данные о правах доступа файла...');
       Exit;
     end;
     SetFileSecurity(PChar(outFile), OWNER_SECURITY_INFORMATION + GROUP_SECURITY_INFORMATION + DACL_SECURITY_INFORMATION, psd);
   end;
  finally
   if psd <> nil then HeapFree(GetProcessHeap, 0, psd);
  end;
end;

Функция рабочая. Работает в Win7, WinServer 2003, WinServer2008. Проблема в том, что не работает в WinServer 2012. Прошу знающих помочь исправить это. Или, на худой конец, где прочитать отличие по этой теме в новой винде? Я не нашёл ничего такого.
Во всех виндовсах приложение запускалось с правами администратора. Если понадобится, могу скинуть весь исходник тествой проги на D7
PM MAIL   Вверх
Akella
Дата 11.3.2013, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



Наверное нужно инфу в MSDN поискать
PM MAIL   Вверх
kami
Дата 11.3.2013, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 15
Всего: 72



Цитата(JohnJ2 @  10.3.2013,  18:14 Найти цитируемый пост)
Функция рабочая.

А файл вообще находится этой функцией? Русские букавы в пути и (или) имени файла есть?

PM MAIL WWW   Вверх
Keeper89
Дата 12.3.2013, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 14
Всего: 58



JohnJ2
какие ошибки? Где именно не работает?


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0682 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.