Я создал небольшое приложение, у которого есть только одна миссия. Это чтобы получить информацию об удаленном компьютере. Он отлично работает в режимах выпуска и отладки. Когда я использую его внутри проекта «.net core», приложение выдает ошибку «Доступ запрещен».
То, что я нашел до сих пор.
Если cmd.exe запускается как SYSTEM, приложение выдает ошибку «Отказано в доступе», но в пользовательском режиме это работает.
Как использовать WMI в режиме SYSTEM? Что я делаю не так?
ConnectionOptions options = new ConnectionOptions
{
Impersonation = ImpersonationLevel.Impersonate,
Authentication = AuthenticationLevel.PacketIntegrity,
EnablePrivileges = true,
SecurePassword = the_secure_password_of_remote_computer,
Username = the_username_of_remote_computer
};
var scope = new ManagementScope(@"\\" + the_ip_address_of_remote_computer +
@"\root\cimv2", options);
try
{
scope.Connect();
if (scope.IsConnected)
{
return true;
}
else
{
false;
}
} catch(Exception exception)
{
// I got the exception here.
Console.WriteLine("Exception|{0}", exception.Message);
return false;
}