Наш код использует некоторые внутренние библиотеки классов, которыми нелегко делиться, но в основном мы используем .NET Directory.Exists, чтобы проверить, можем ли мы получить доступ к общему каталогу на удаленном сервере. Directory.Exists возвращает false, затем мы используем класс Process .NET для выполнения net.exe (мы находим местоположение net.exe с помощью Environment.SystemDirectory).

у прочитать журнал событий на удаленном компьютере, чтобы проверить ошибки во время тестирования. Вот некоторый соответствующий код:

public bool CheckEventLogs(DateTime start)
{
  EventLog myEventLog = new EventLog("CustomLog", "ServerName");
  bool errorFound = false;
  foreach (EventLogEntry entry in myEventLog.Entries)
  {
    if (entry.EntryType == EventLogEntryType.Error && entry.TimeGenerated >= start)
    {
       Console.WriteLine("Error in Event Log:\n" + entry.Message + "\n");
       errorFound = true;
    }
  }
  return errorFound;
}

В настоящее время этот код вызывает исключение (Попытка выполнить несанкционированную операцию). Согласно сMSDNМне нужно EventLogPermission, но я изо всех сил пытался найти какие-либо примеры использования этого разрешения. У кого-нибудь есть пример как это сделать?

Изменить: Ответ на комментарии

Спасибо всем за комментарии - вот дополнительная запрошенная информация:

Исключение выбрасывается изforeach заявление. В частности, при переходе по коду он бросается на шаг после того, когдаin выделено Кажется, мне удалось создать объект журнала событий, но я не могу получить доступ к записям в журнале событий.

Моя учетная запись не имеет разрешения на чтение журнала событий в целевой системе, но у меня есть учетные данные для учетной записи, которая делает. При подключении вручную через средство просмотра событий есть возможность подключиться как другой пользователь. После этого вручную мой код запустился без проблем. Однако я не могу полагаться на то, чтобы делать это вручную при каждом запуске этой программы. Что мне нужно, это способ подключиться как другой пользователь программным путем. Я думал, чтоEventLogPermission был бы способ сделать это, но, возможно, есть другой способ. Если кто-нибудь знает, как подключиться к удаленному журналу от имени другого пользователя в C #, это именно то, что я искал.

Ответы на вопрос(2)

Ваш ответ на вопрос