14
votes

I'm using the following code to connect to remote machine using WMI:

   ConnectionOptions connOptions = new ConnectionOptions();
            connOptions.Impersonation = ImpersonationLevel.Impersonate;
            connOptions.EnablePrivileges = true;
            connOptions.Username = "admin";
            connOptions.Password = "password";
            ManagementScope scope = new ManagementScope(String.Format(@"\\{0}\ROOT\CIMV2", remoteMachine), connOptions);
            scope.Connect();

I'm getting the following exception: The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)

Checked all steps described in this knowledgebase article, everything is OK on remote machine.

User is Administrator on remote machine.

Tried Wbemtest tool, the same result

Does anyone has an idea what is happening?

3

3 Answers

8
votes

If you under Win7 you must run app as an administrator. You can also try different values for connOptions.Impersonation property. Did you open RPC port on a remote machine? Try turning off firewall altogeter on both machines.

4
votes

Also, You need to enable Windows Management Instrumentation (WMI) rule in windows firewall.

1] Windows Firewall.
2] Allow app or feature through windows firewall.
3] Enable Privilege for Windows Management Instrumentation(WMI).

To enable or disable WMI rule using Windows firewall

  1. In the Control Panel, click Security and then click Windows Firewall.
  2. Click Change Settings and then click the Exceptions tab.
  3. In the Exceptions window, select the check box for Windows Management Instrumentation (WMI) to enable WMI traffic through the firewall.

To disable WMI traffic, clear the check box.

You can also enable or disable WMI traffic through the firewall at the command prompt.

To enable or disable WMI traffic at command prompt using WMI rule group

Use the following commands at a command prompt. Type the following to enable WMI traffic through the firewall.

netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes

Type the following command to disable WMI traffic through the firewall.

netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=no
1
votes

Still you have problem then follow below link may help you.

Connecting to WMI Remotely

I facing this issue even my all firewall is off.

Below command run and my problem is solved.

  1. netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes

  2. netsh advfirewall firewall add rule dir=in name="DCOM" program=%systemroot%\system32\svchost.exe service=rpcss action=allow protocol=TCP localport=135

  3. netsh advfirewall firewall add rule dir=in name ="WMI" program=%systemroot%\system32\svchost.exe service=winmgmt action = allow protocol=TCP localport=any

  4. netsh advfirewall firewall add rule dir=in name ="UnsecApp" program=%systemroot%\system32\wbem\unsecapp.exe action=allow

  5. netsh advfirewall firewall add rule dir=out name ="WMI_OUT" program=%systemroot%\system32\svchost.exe service=winmgmt action=allow protocol=TCP localport=any