Сбой ManagementScope.Connect с ошибкой E_ACCESSDENIED ошибка при запуске из службы Windows - PullRequest
1 голос
/ 26 сентября 2011

Я пытаюсь подключиться к Windows WMI через службу, заполнив переменные ManagementScope и пытаясь подключиться к удаленному компьютеру.Подключиться успешно, если я работаю как консоль Windows, но не удается, когда я запускаю тот же код из службы Windows.

Код, который я использую, выглядит следующим образом:

ManagementScope scope = null;

scope = new ManagementScope("\\\\" + m_sComputerName + "\\root\\cimv2");
if (m_sLoginName != null && m_sPassword != null)
{
    scope.Options.Username = m_sLoginName;
    scope.Options.Password = m_sPassword;
}

scope.Options.EnablePrivileges = true;
scope.Options.Authentication = AuthenticationLevel.PacketPrivacy;
scope.Options.Impersonation = ImpersonationLevel.Impersonate;
scope.Connect();

Язапуск службы Windows в качестве локальной системы.Код пишется на C # с .net версии 4.0

Любая помощь очень ценится.

Спасибо

1 Ответ

0 голосов
/ 26 сентября 2011

По умолчанию учетная запись LocalSystem не имеет доступа к сетевым ресурсам - см. здесь .Если вам нужен доступ к сетевым ресурсам из вашего сервиса, рассмотрите возможность его запуска в качестве учетной записи домена.Хотя для LocalSystem можно разрешить доступ к удаленным ресурсам, делать это не рекомендуется.Другим вариантом будет запуск службы как NT AUTHORITY \ NetworkService - см. здесь , в этом случае служба будет аутентифицироваться как учетная запись компьютера при доступе к сетевым ресурсам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...