C #: запрос удаленного сервера, чтобы узнать, какой пользователь заблокировал файл - PullRequest
0 голосов
/ 26 мая 2019

** РЕДАКТИРОВАТЬ: оригинальный вопрос не был ясен. Я не могу НАЙТИ IADsFileServiceOperations в любой сборке .Net, и в этом проблема - не в том, что я не знаю, как ее использовать **

Я часами копаюсь и не могу понять ...

В C # есть ли способ сделать запрос к удаленному файловому серверу (предпочтительно, используя ManagementObjectSearcher, но не обязательно) и спросить его, у какого пользователя в данный момент есть блокировка файла?

Лучшее, что я мог придумать, это

var en = new DirectoryEntry($@"\\{hostName}\root\cimv2");
var fso = sessQuery.NativeObject as IADsFileServiceOperations;
var resources = fso.Resources();

но я не могу понять, как использовать IADsFileServiceOperations в проекте .Net.

Помощь ...? Пожалуйста ...

1 Ответ

1 голос
/ 26 мая 2019

IADsFileServiceOperations - это интерфейс, который предоставляет два метода:

  1. IADsFileServiceOperations :: Ресурсы
  2. IADsFileServiceOperations :: Сессии

https://docs.microsoft.com/en-us/windows/desktop/api/iads/nn-iads-iadsfileserviceoperations#methods

Метод IADsFileServiceOperations :: Resources получает указатель на указатель на интерфейс IADsCollection в коллекции объекты ресурсов, представляющие текущие открытые ресурсы в этом файле сервис.

var en = new DirectoryEntry($@"\\{hostName}\root\cimv2");
var fso = sessQuery.NativeObject as IADsFileServiceOperations;
var resources = fso.Resources(); // returns resource objects representing the current open resources on the file

foreach(var res in resources)
{
   // res.User
   // res.Path
   // res.LockCount
   if(res.LockCount > 0)
   {
      // user has lock on file
   }
}

Обновление 1:

Чтобы добавить типы активных каталогов в ваш проект .NET, вам нужно добавить ссылку COM в проект. Перейдите в диалоговое окно добавления ссылки, затем вкладку COM и добавьте Active DS Type Library.

При добавлении этой ссылки COM у вас есть все типы AD, интерфейсы с использованием ActiveDS.

Надеюсь, это решит вашу проблему.

...