CreateFile - открыть сетевой диск
От: Wad  
Дата: 30.11.11 03:55
Оценка:
Господа, добрый день,

Помогите, пожалуйста разобраться со следующей проблемой:
Маплю администраторскую шару \\RemotePC\C$ на диск Z:
После этого хочу получить хендл с помощью функции CreateFile. В итоге всё время возвращается access denied, хотя с правами всё нормально — запускаюсь под админскими правами, диск замаплен под ними же. С локальными дисками всё отрабатывает ОК.

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

Помогите, кто сталкивался с такой проблемой плиз.
Re: CreateFile - открыть сетевой диск
От: ononim  
Дата: 30.11.11 06:37
Оценка: +1
Wad>Помогите, пожалуйста разобраться со следующей проблемой:
Wad>Маплю администраторскую шару \\RemotePC\C$ на диск Z:
Wad>После этого хочу получить хендл с помощью функции CreateFile. В итоге всё время возвращается access denied, хотя с правами всё нормально — запускаюсь под админскими правами, диск замаплен под ними же. С локальными дисками всё отрабатывает ОК.
Чтоб открыть эту шару нуна админские права на УДАЛЕННОЙ системе. И нужно чтоб юзер, под которым вы логинитесь на ту систему, — имел права на удаленное подключение (и имел ненулевой длины пароль).
Как много веселых ребят, и все делают велосипед...
Re[2]: CreateFile - открыть сетевой диск
От: Wad  
Дата: 30.11.11 09:22
Оценка:
Здравствуйте, ononim, Вы писали:

Wad>>Помогите, пожалуйста разобраться со следующей проблемой:

Wad>>Маплю администраторскую шару \\RemotePC\C$ на диск Z:
Wad>>После этого хочу получить хендл с помощью функции CreateFile. В итоге всё время возвращается access denied, хотя с правами всё нормально — запускаюсь под админскими правами, диск замаплен под ними же. С локальными дисками всё отрабатывает ОК.
O>Чтоб открыть эту шару нуна админские права на УДАЛЕННОЙ системе. И нужно чтоб юзер, под которым вы логинитесь на ту систему, — имел права на удаленное подключение (и имел ненулевой длины пароль).

Ок, я это понимаю. Права самые админские (единственное, что там они через доменного пользователя, включённого в группу админстраторов). И любой файл на удалёнке открыть могу. Вопрос в открытии именно диска.
Посоветуйте что не так, локально открывается отлично, замапленный не хочет.
Вот код, обёрточный, но тут разницы нет по большому счёту.
rootHandle = Win32Api.CreateFile("\\\\.\\Z:",
Win32Api.GENERIC_READ | Win32Api.GENERIC_WRITE,
Win32Api.FILE_SHARE_READ | Win32Api.FILE_SHARE_WRITE,
IntPtr.Zero,
Win32Api.OPEN_EXISTING,
0,
IntPtr.Zero);
Re[3]: CreateFile - открыть сетевой диск
От: ononim  
Дата: 30.11.11 12:41
Оценка:
Wad>Ок, я это понимаю. Права самые админские (единственное, что там они через доменного пользователя, включённого в группу админстраторов). И любой файл на удалёнке открыть могу. Вопрос в открытии именно диска.
админские — в смысле юзер входит в локальную группу админов той машины или он в доменных админах? Не уверен играет ли это роль, — но просто предположение.
Как много веселых ребят, и все делают велосипед...
Re[3]: CreateFile - открыть сетевой диск
От: Centaur Россия  
Дата: 30.11.11 17:52
Оценка: 1 (1)
Здравствуйте, Wad, Вы писали:

Wad>>>Маплю администраторскую шару \\RemotePC\C$ на диск Z:

Wad>>>После этого хочу получить хендл с помощью функции CreateFile.
Wad>Вот код, обёрточный, но тут разницы нет по большому счёту.
Wad>rootHandle = Win32Api.CreateFile("\\\\.\\Z:",

Почему вы думаете, что должны мочь открыть удалённый физический или логический диск через замапленную шару? Чисто синтаксически, \\.\ — это «нечто на той машине, где я сейчас», почему оно должно прозрачно отображаться на что-то там по сети? А что должен делать сетевой редиректор или что там, если сетевой диск замаплен не на корень удалённого диска?
Re[2]: CreateFile - открыть сетевой диск
От: Ops Россия  
Дата: 01.12.11 20:04
Оценка:
Здравствуйте, ononim, Вы писали:

Wad>>Помогите, пожалуйста разобраться со следующей проблемой:

Wad>>Маплю администраторскую шару \\RemotePC\C$ на диск Z:
Wad>>После этого хочу получить хендл с помощью функции CreateFile. В итоге всё время возвращается access denied, хотя с правами всё нормально — запускаюсь под админскими правами, диск замаплен под ними же. С локальными дисками всё отрабатывает ОК.
O>Чтоб открыть эту шару нуна админские права на УДАЛЕННОЙ системе. И нужно чтоб юзер, под которым вы логинитесь на ту систему, — имел права на удаленное подключение (и имел ненулевой длины пароль).
А вот это задается в политиках, можно и нулевой длины.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[3]: CreateFile - открыть сетевой диск
От: ononim  
Дата: 01.12.11 20:27
Оценка:
Wad>>>Маплю администраторскую шару \\RemotePC\C$ на диск Z:
Wad>>>После этого хочу получить хендл с помощью функции CreateFile. В итоге всё время возвращается access denied, хотя с правами всё нормально — запускаюсь под админскими правами, диск замаплен под ними же. С локальными дисками всё отрабатывает ОК.
O>>Чтоб открыть эту шару нуна админские права на УДАЛЕННОЙ системе. И нужно чтоб юзер, под которым вы логинитесь на ту систему, — имел права на удаленное подключение (и имел ненулевой длины пароль).
Ops>А вот это задается в политиках, можно и нулевой длины.
ну по дефолту нуна
Как много веселых ребят, и все делают велосипед...
Re[3]: CreateFile - открыть сетевой диск
От: ndemia Россия http://ndemia.com
Дата: 07.12.11 00:07
Оценка:
Здравствуйте, Wad, Вы писали:

Wad>Здравствуйте, ononim, Вы писали:


Wad>>>Помогите, пожалуйста разобраться со следующей проблемой:

Wad>>>Маплю администраторскую шару \\RemotePC\C$ на диск Z:
Wad>>>После этого хочу получить хендл с помощью функции CreateFile. В итоге всё время возвращается access denied, хотя с правами всё нормально — запускаюсь под админскими правами, диск замаплен под ними же. С локальными дисками всё отрабатывает ОК.
O>>Чтоб открыть эту шару нуна админские права на УДАЛЕННОЙ системе. И нужно чтоб юзер, под которым вы логинитесь на ту систему, — имел права на удаленное подключение (и имел ненулевой длины пароль).

ИМХО (очень имхо) — нельзя так открывать.
1. в описании CreateFile:

Creates or opens a file, file stream, directory, physical disk, volume, console buffer, tape drive, communications resource, mailslot, or named pipe.

именно physical, не remote

2. то, что откроется для физического диска — это хэндл прямого управления диском, для DeviceIoControl — т.е. прямая запись, формат и т.п. Обмен по сети — он файловый/командный. Другими словами, в сеть отображается файловая система, но не дисковая система. Я понимаю, что можно делать удалённо, например, дефрагментацию — но это мы только команду запускаем удалённо, реально дефрагментацию делает всё-таки программа на той машине, где физический диск.
Короче, мне кажется, такого режима просто нет — по share name предоставлять прямой доступ к диску.

Ещё раз — очень ИМХО.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.