Solution to scan error "RPC server is not available". (扫描错误“RPC 服务器不可用”的解决方案。)

对于使用 AIT 的网络扫描,必须考虑当前 IT 基础设施以及当前的安全策略和配置。此外,还应验证要扫描的 PC 是通过直接还是间接方式 (VPN) 连接到 LAN。在收到错误“RPC 服务器不可用”时,您可以按照以下步骤对出现的扫描问题进行故障排查。

解决此扫描错误的方法步骤:

  1. 根据在扫描时是指定了域名,还是使用了 IP 范围,请务必确定报告此错误的 IP 地址是 Windows 设备、网络设备还是其他设备,因为如果它不是 Windows 设备,AIT 将找不到正在运行的 WMI 服务,此时通常就会报告此错误。
  2. 如果是 Windows 设备报告了此错误,请务必了解 PC 在网络上是否可用,即能否响应 ping(如果 ICMP 协议处于启用状态,那么 ping 应该能正常获得结果)。要执行此检查,我们建议使用以下 PowerShell 脚本,该脚本允许以 AIT 创建的 AD_Computers.txt 文件为参考,执行批量 ping。将响应 ping 的 PC 数量与您认定的 PC 近似总数进行比较。如果响应 ping 的 PC 数量较少,则扫描错误的原因可能是 PC 未连接到网络或位于无法访问的 VLAN 中。另一方面,如果响应 ping 的 PC 数量接近 PC 总数,则扫描错误的原因是由于扫描目标的每台 PC 上使用的防火墙阻止了端口。 
$PCName = Get-Content "C:\ProgramData\Autodesk\AIT\AD_Computers.txt"  
$Successfulping = New-Item c:\Successfulping.txt -ItemType "file" -force
$Failedping = New-Item c:\Failedping.txt -ItemType "file" -force
  
foreach ($PC in $PCName) {  
  
        if (test-Connection -ComputerName $PC -Count 1 -Quiet ) {   
            "$PC is Pinging "  
             Add-Content -path $Successfulping -value "$PC is Pinging"
          
                    } else  
                      
                    {
                    "$PC not pinging"  
                    Add-Content -path $Failedping -value "$PC not pinging"
              
                    }      
          
} 
  1. 在确定防火墙是扫描错误的原因时,应验证扫描目标的每台 PC 上使用的防火墙是由 Windows 管理的,还是由 Windows 以外的安全解决方案管理的,因为这决定了应在何处对现有防火墙规则进行技术调整。AIT 通过使用 WMI (Windows Management Instrumentation) 查询各种 Windows 操作系统数据点,以获取 Autodesk 产品清单(WMI 是 Windows 操作系统中内置的管理基础架构)。当 AIT 获得每台 PC 的 IP 时,它会尝试连接到其尝试扫描的每台 PC 上的 UDP 端口 137、138 以及 TCP 端口 135、139 和 445。AIT 连接到 TCP 端口 135 上的 RPC Endpoint Mapper 服务,RPC Endpoint Mapper 会告知它正在侦听哪个 WMI 端口,端口号是随机的,可能在范围 1025-5000 或 49152-65535 之间。必须确保计算机防火墙已正确配置为允许所有 WMI 流量。仅打开特定端口是不够的,因为流量是通过如上所述的随机端口发送的。
  1. 如果防火墙由 Windows 管理,可以执行的快速检查是在一台 PC 上本地启用所需的端口例外,然后启动仅指向该 PC 的 AIT 扫描,以验证网络扫描是否成功。要进行此项检查,必须在选定测试 PC 的命令提示符窗口中以管理员身份执行以下命令
call netsh firewall set service RemoteAdmin enable
call netsh firewall add portopening protocol=tcp port=135 name=DCOM_TCP135

如果在执行这些命令并启动 AIT 后扫描成功,那么可以确定,设置必然是在 PC 的 Windows 防火墙内进行的。要将此设置扩展至所有 PC,建议创建 Active Directory 组策略,请参见:通过组策略设置以允许入站远程管理

  1. 如果防火墙由 Windows 以外的安全解决方案管理,您必须登录到该解决方案的管理控制台,并编辑允许 PC 在 AIT 所需端口上接收请求的当前防火墙规则。请参见:网络扫描中的 AIT TCP/IP 通信流
  1. 如果执行此过程后仍然显示错误“RPC 服务器不可用”,请撤消所做的任何更改,然后继续使用其他方法配置 AIT:

有关 RPC 的更多信息和故障排除的详细信息,请访问以下链接:https://social.technet.microsoft.com/wiki/contents/articles/4494.windows-server-troubleshooting-rpc-server-is-unavailable.aspx

通过组策略以允许入站远程管理

  1. 在 Active Directory 服务器上,打开组策略管理器。
  2. 右键单击选定的域、林或组织单位,创建一个新的 GPO(为便于跟踪,建议将其命名为“Autodesk Inventory Tool”)。
  3. 创建 GPO 后,用右键单击它,然后选择“Edit”(编辑)。
  4. 在组策略编辑器中,转到路径(具体路径取决于您的操作系统和语言配置)。
Computer Configuration\Administrative Templates\Network\Network Connections\Windows Defender Firewall\Domain Profile
Computer Configuration\Administrative Templates\Network\Network Connections\Windows Firewall\Domain Profile
  1. 进入此目录后,根据操作系统和已经配置的语言对 GPO 进行配置:
Windows Defender Firewall: Allow inbound remote administration exception
Windows Firewall: Allow inbound remote administration exception
Windows Firewall: Allow remote administration exception
  1. 选择后,单击鼠标右键并选择“Edit”(编辑),并在配置中选择“Enabled”(启用)。在显示“Allow unsolicited incoming messages from these IP addresses”(允许来自这些 IP 地址的未经请求的传入消息)的配置选项中,在文本框中输入安装 AIT 的服务器或 PC 的 IP 地址。

网络扫描中的 AIT TCP/IP 通信流

下图显示了在网络上执行扫描时 AIT 执行的网络通信