"Сервер RPC недоступен" с использованием запроса WMI

У меня есть рабочая группа веб-серверов под управлением Server 2008 R2, в которой я пытаюсь управлять script, который проверяет пространство на диске всех из них. Я установил это несколько месяцев назад, когда серверы были настроены, и я считаю, что он работает нормально. Теперь я иду и проверяю, и он дает сообщение об ошибке "Сервер RPC недоступен". script - это страница С# ASP.NET, хотя я пробовал сопоставимые вызовы в PowerShell, и она дает ту же ошибку. script отлично работает для доступа к информации для локальной машины, но не может получить доступ к информации о удаленном сервере.

Я провел последние несколько часов, прокладывая все, что могу найти, но ничего не работает. Я установил разрешения для WMI (удаленных и локальных), DCOM (удаленный и локальный) и весь диск компьютера, к которому я обращаюсь. Я использовал имя компьютера, IP-адрес, полное имя компьютера (xxx.echomountain.com) и пробовал многочисленные параметры олицетворения и аутентификации объекта ConnectionOptions.

Я знаю, что имя пользователя/пароли, которые я использую, верны, так как я могу получить доступ к каталогам осколков одного из другого.

Любые идеи о том, что еще я мог проверить, может вызвать эту ошибку?

ConnectionOptions oConn = new ConnectionOptions();
    oConn.Impersonation = ImpersonationLevel.Impersonate;
    oConn.EnablePrivileges = true;
    oConn.Username = username;
    oConn.Password = password;
    //oConn.Authentication = AuthenticationLevel.PacketPrivacy;
    string strNameSpace = @"\\";

    if (srvname != "")
        strNameSpace += srvname + ".echomountain.com";
    else
        strNameSpace += ".";

    strNameSpace += @"\root\cimv2";

    ManagementScope oMs = new ManagementScope(strNameSpace, oConn);

    //get Fixed disk state
    ObjectQuery oQuery = new ObjectQuery("select FreeSpace,Size,Name from Win32_LogicalDisk where DriveType=3");

    //Execute the query
    ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs, oQuery);

    //Get the results
    ManagementObjectCollection oReturnCollection = oSearcher.Get();

    //loop through found drives and write out info
    double D_Freespace = 0;
    double D_Totalspace = 0;
    foreach (ManagementObject oReturn in oReturnCollection)
    {
        // Disk name
        //MessageBox.Show("Name : " + oReturn["Name"].ToString());
        // Free Space in bytes
        string strFreespace = oReturn["FreeSpace"].ToString();
        D_Freespace = D_Freespace + System.Convert.ToDouble(strFreespace);
        // Size in bytes
        string strTotalspace = oReturn["Size"].ToString();
        D_Totalspace = D_Totalspace + System.Convert.ToDouble(strTotalspace);
        boxSize = (D_Totalspace / GB).ToString("##.00");
        boxFree = (D_Freespace / GB).ToString("##.00");
        Response.Write(srvname + ":" + boxSize + ":" + boxFree);
    }

Ошибка сервера в приложении "/".

Сервер RPC недоступен. (Исключение из HRESULT: 0x800706BA)

Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.

Сведения об исключении: System.Runtime.InteropServices.COMException: сервер RPC недоступен. (Исключение из HRESULT: 0x800706BA)

Ошибка источника:

Строка 64: Строка 65://Получить результаты Строка 66: ManagementObjectCollection oReturnCollection = oSearcher.Get(); Линия 67: Строка 68://прокручиваем найденные диски и выписываем информацию

Исходный файл: c:\Web\medelaimages.com\iis\tool\boxinfoagent.aspx Линия: 66

Трассировка стека:

[COMException (0x800706ba): сервер RPC недоступен. (Исключение из HRESULT: 0x800706BA)]    System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) +0    System.Management.ManagementScope.InitializeGuts(Object o) +674    System.Management.ManagementScope.Initialize() +347    System.Management.ManagementObjectSearcher.Initialize() +189    System.Management.ManagementObjectSearcher.Get() +54    ASP.tool_boxinfoagent_aspx.Page_Load (отправитель объекта, EventArgs e) в c:\Web\medelaimages.com\iis\tool\boxinfoagent.aspx: 66    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25    System.Web.UI.Control.LoadRecursive() +71    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3048

Информация о версии: Microsoft.NET Framework Версия: 4.0.30319; Версия ASP.NET: 4.0.30319.1

Ответ 1

Сообщение об ошибке сообщает вам, что RPC заблокирован, что является параметром политики по умолчанию в Windows 7 и 2008. Либо откройте его с помощью политики, либо используйте WMI для подключения и управления хостами. Во внутренней, доверенной сети RPC обычно активируется. Планы политики безопасности в правительственных органах США, как и те, которые создали FDCC и USGCB, не рекомендуют устанавливать RPC, так что это нормально. Управление живыми системами через WMI очень сложно, так как вы не можете просматривать реестр удаленных хостов, задачи, папки и файлы. Однако вы можете легко управлять услугами через WMI.

Ответ 2

Ошибка The RPC server is unavailable. (Exception from HRESULT: 0x800706BA) может возникнуть, если

  • входящие соединения RPC/WMI блокируются на целевой машине из-за ограничений брандмауэра

    или

  • только потому, что вы ввели неправильное имя хоста/IP-адрес целевой машины.

Ошибка перед при выполнении любых действий по проверке подлинности и/или авторизации, поэтому на этом этапе не требуется выполнение разрешений. Фактически, если учетная запись пользователя не имеет необходимых разрешений для определенного пространства имен, вы получите еще одну ошибку и код ошибки: access denied. (0x80041003).

В статье MSDN рассказывается о добавлении исключений брандмауэра для удаленного доступа к WMI: "Подключение к WMI удаленно" .

Ответ 3

Просто перейдите в диспетчер IIS. Запустите свой сайт. Сервис в пуле приложений. Это работает для меня

Ответ 4

Кроме того, вам необходимо включить правило инструментария управления Windows (WMI) в брандмауэре Windows на удаленной машине.

1] Откройте брандмауэр Windows.
2] Нажмите" Разрешить приложение или функцию через брандмауэр Windows ".
3] Включить привилегию для инструментария управления Windows (WMI).

Ответ 5

Я столкнулся с такой же проблемой. Раньше я получал эту ошибку при использовании IP-адреса сервера, но смог подключиться после того, как использовал имя FQDN сервера. После устранения неполадок я обнаружил, что запись в DNS PTR неверна. После исправления я также смог подключить WMI с IP-адресом. Я использовал тестовый инструмент wbemtest WMI.