Копировать файлы с двойными учетными данными (Windows) - PullRequest
0 голосов
/ 13 апреля 2009

Предположим, у нас есть c: \ DirA, который может быть прочитан только User1, и c: \ DirB, который может быть записан только User2. Оба полномочия известны.

Как я могу скопировать файлы из DirA в DirB напрямую?

1 Ответ

1 голос
/ 13 апреля 2009

Предполагая, что процесс запущен в контексте первого пользователя, запустите LogonUser, чтобы получить маркер безопасности для второго пользователя. Создать поток и вызвать ImpersonateLoggedOnUser, передав токен в качестве параметра. Второй поток будет иметь доступ к DirB. Чтение данных в первом потоке, передача их во второй поток и запись их оттуда.

Если у пользователя, под которым вы работаете, есть права на резервное копирование или восстановление, проще будет активировать его с помощью OpenProcessToken, за которым следует AdjustTokenPrivileges.

...