Как принудительно сменить fileowner'а?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Luck
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 30.07.2005 (Сб) 22:29

Как принудительно сменить fileowner'а?

Сообщение Luck » 30.07.2005 (Сб) 22:45

Кто подскажет?
Есть файл-сервер. На нем куча-куча всяких файлов. Из них процентов 80 - нужная информация, подлежащая ежемесячному архивированию. А оставшаяся часть должна бы удаляться, но права доступа не позволяют. Можно, конечно, вручную каждому файлу сменить владельца, а затем удалить. Но этих файлов очень много, вручную делать не реально.
Есть VB-приблуда, которая пробегает по всему этому "хранилищу" и создает три списка - белый, черный и "серый". Затем файлы белого списка идут в архив, с серым разбираемся на месте, а черный как раз на удаление. С ним-то и проблемы.
Хочется добавить процедуру удаления файлов черного списка, для этого надо программно сменить владельца файла.
Как это можно сделать?
Учетная запись, из-под которой запускается программа, администраторская.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.07.2005 (Сб) 22:57

SetSecurityInfo/SetNamedSecurityInfo
Изображение

Luck
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 30.07.2005 (Сб) 22:29

Сообщение Luck » 31.07.2005 (Вс) 13:58

Это я знаю. Даже пытался в МСДНе с примерами разобраться. Но там голый код, а мне бы логику понять. Почему, например, большая часть APIшек работы с системой безопасности вызывается по два раза? Что там будет аргументами при каждом вызове и что результатом?
Третий день бьюсь.
Может на пальцах как-то разжевать можно?
Или пример с каментами?

И еще один момент. Однажды домен падал (ну такие вот у нас админы). Вместо него создали новый с тем же именем. Фишка в том, что некоторые файлы имеют владельцев "из прошлой жизни" домена. То есть SID не распознаваемый. Программа доступа к ним вообще не может получить, но руками, опять-таки, владельца сменить можно. Что тут можно придумать?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.07.2005 (Вс) 14:27

Два раза, скорее всего, потому, что первым вызовом узнаём требуемый размер буфера, вторым заполняем его.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 148

    TopList