现在的位置: 首页 > 综合 > 正文

The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)

2018年02月14日 ⁄ 综合 ⁄ 共 1762字 ⁄ 字号 评论关闭

在用powershell运行脚本调用WMI远程启动机器的时候碰到的:

 

"The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)" error may occurs when deploying VNC to a remote computer or when using built-in management tools.
There can be a few reasons for this error:

The remote computer is blocked by the firewall.
Solution: Open the Group Policy Object Editor snap-in (gpedit.msc) to edit the Group Policy object (GPO) that is used to manage Windows Firewall settings in your organization. Open Computer Configuration, open Administrative Templates, open Network, open Network
Connections, open Windows Firewall, and then open either Domain Profile or Standard Profile, depending on which profile you want to configure. Enable the following exception: "Allow Remote Administration Exception" and "Allow File and Printer Sharing Exception".
Host name or IP address is wrong or the remote computer is shutdown.
Solution: Verify correct host name or IP address.
The "TCP/IP NetBIOS Helper" service isn't running.
Solution: Verity that "TCP/IP NetBIOS Helper" is running and set to auto start after restart.
The "Remote Procedure Call (RPC)" service is not running on the remote computer.
Solution: Verity that "Remote Procedure Call (RPC)" is running and set to auto start after restart.
The "Windows Management Instrumentation" service is not running on the remote computer.
Solution: Verity that "Windows Management Instrumentation" is running and set to auto start after restart.

 

第一个解决方法基本可以解决问题的。下面是调用WMI远程重启机器的脚本

# Define input parameters
param (
  [string] $filename = $(throw "Filename is required!")
)

Write-Host "Reading computer names from $filename"

# Read file
$computers = get-content $filename

write-Host "Restarting computers:"$computers

foreach ($computer in $computers) 
{

  # Connect to WMI
  $wmi = get-wmiobject -class "Win32_OperatingSystem" `
  -namespace "root\cimv2" -computer $computer

  # Add privileges
  #$wmi.psbase.Scope.Options.EnablePrivileges = $true


  # Restart computer
  foreach ($item in $wmi) {
    $wmi.reboot()
    write-host "Restarted " + $computer
  }
}

抱歉!评论已关闭.