NetBlade
Windows 步骤 2 / 12 ~40 分钟 中级

为无代理清单准备你的 Windows PC

无需安装任何东西,让 Windows PC 可被 NetBlade 读取:管理员帐户、WMI、SMB、防火墙、远程 UAC、启用脚本和试点 PC。

NetBlade 通过网络、使用 Windows 自带的管理接口读取 Windows PC,不会在上面安装任何东西。作为交换,每台 PC 必须接受来自运行 NetBlade 的 PC 的管理员登录,并让这些流量通过其防火墙。本文准确说明需要哪些条件、域和工作组之间有何不同、NetBlade 的启用脚本会更改什么以及如何撤销,以及如何在动其他 PC 之前先在一台 PC 上验证这一切。

开始之前

  • 已安装 NetBlade 并完成首次扫描,PC 已出现在 设备 中(入门)。
  • 用于读取目标 PC 的管理员帐户:一个作为本地管理员的域帐户,或每台 PC 上的本地管理员帐户。
  • 对一台用作试点的 PC 的物理或远程访问权限,并能在上面以管理员身份运行程序。
  • 运行 NetBlade 的 PC 的 IP 地址。它不应改变:如果它来自 DHCP,请在 DHCP 服务器上为它设置保留(原因见第 7 步)。

1. 了解读取会用到什么

对 Windows PC 的读取(设备卡片上的 深度扫描,或设备列表上的 深度清单)通过 Windows 管理进行,NetBlade 还会要求向它开放文件共享:

内容端口用途
Windows 管理 (WMI)TCP 135 以及 WMI 服务的动态 RPC 端口读取本身:硬件、系统、更新、服务、防护
文件共享 (SMB)TCP 445与 WMI 一同开放;也是 PsExec 的入口
WinRMTCP 5985仅用于远程操作,不用于读取

它还需要该 PC 的 Windows 管理员凭据。尤其是 BitLocker 和 TPM,只有管理员才能读取;没有管理员权限时,卡片会提示需要管理员。

具备这些条件后,NetBlade 会读取:名称、域、操作系统及内部版本、制造商、型号和序列号、处理器、内存、已登录用户、驱动器和物理磁盘、网络适配器、显示器、打印机、电池、故障设备和 USB、已安装的更新、自动启动的服务、随 Windows 启动的程序、可选功能、用户配置文件、本地管理员和帐户、打开的会话、共享文件夹及可写入它们的人、已安装的程序,以及防护:防病毒、各配置文件的防火墙、BitLocker、TPM、安全启动、UAC、远程桌面、SMBv1 和挂起的重启。

注意: 运行 NetBlade 的 PC 无需任何凭据或准备即可读取自身。

2. 域还是工作组:有何不同

在域中在工作组中
帐户一个作为 PC 本地管理员的域帐户每台 PC 上的本地管理员帐户
远程 UAC对域帐户不构成问题对本地帐户必须放宽(第 5 步)
用于远程操作的 WinRMKerberos,本 PC 上无需额外设置本 PC 必须在 TrustedHosts 中列出目标

在域中还有一个便利之处:当没有任何已存放的凭据能登录时,NetBlade 会尝试它自身运行所用的 Windows 帐户。如果你用一个作为这些 PC 本地管理员的域帐户登录 NetBlade 所在的 PC,那么无需存放凭据就能读取这些 PC。为了配置清晰,仍建议存放一个专用帐户(请参阅 正确管理凭据)。

3. 选择并存放帐户

  1. 决定 NetBlade 将使用哪个帐户。在域中,通常选择一个专用 IT 帐户,并使其成为工作站本地 Administrators 组的成员。在工作组中,使用每台 PC 的本地管理员帐户。
  2. 在 NetBlade 中打开 凭据,点击 添加…。
  3. 将 协议 设置为 Windows (WMI),并按照应用显示的格式输入 用户名:域帐户使用 DOMAIN\user,本地帐户使用 .\Administrator。
  4. 输入密码,选择 适用范围(目前对试点 PC 选择 一个站点 或 一台设备),并添加标签。
  5. 点击 存放。

4. 先试一台试点 PC

不要准备好二十台 PC 之后才发现帐户是错的。先挑一台。

  1. 在“凭据”页面上,在 要测试的计算机 中输入试点 PC 的地址,然后点击 测试。上次测试 列显示“有效”或“失败”。
  2. 从 设备 打开试点 PC 的卡片,点击 深度扫描。
  3. 查看设备名称正下方的读取状态。“已于 … 通过 … 读取”表示成功。“从未读取”或“读取失败”会打开一个面板,说明原因和处理方法。

如果成功,请跳到第 7 步。如果面板提示防火墙阻止了读取,例如“这是一台 Windows 电脑,但它的防火墙阻止了读取:它只在端口 … 上响应”,请继续第 5 步。

5. 用启用脚本开放 PC

当某台 Windows PC 无法读取时,其卡片会提供一个脚本,只开放 NetBlade 所需的内容,并且只对运行 NetBlade 的 PC 开放。

  1. 在试点 PC 的卡片上,点击读取状态(从未读取 或 读取失败)。
  2. 点击 下载启用脚本 并保存文件。
  3. 在同一面板中,现在也保存 撤销更改的脚本,并将它与启用脚本放在一起。
  4. 将启用脚本复制到试点 PC 上并双击运行。这是一个 .cmd 文件:它会自行请求管理员权限,并逐行说明它在做什么。
  5. 回到 NetBlade,点击 立即重新读取。

警告: 启用和撤销按钮只在 PC 尚未成功读取时显示在卡片上。一旦读取成功,它们就会消失,因此请在保存启用脚本的同时保存撤销脚本。

脚本会在该 PC 上更改以下内容:

  • 添加仅允许来自 NetBlade 所在 PC 的 IPv4 地址的防火墙规则,名称为 NetBlade - WMI (135)、NetBlade - WMI (RPC)、NetBlade - Services (RPC)、NetBlade - SMB (445) 和 NetBlade - WinRM (5985)。Services 规则开放远程服务管理,让 PsExec 立即启动而无需等待。
  • 将 WMI 服务设置为自动启动并启动它。
  • 使用 Enable-PSRemoting -Force -SkipNetworkProfileCheck 开启 WinRM,用于远程操作。
  • 仅当 PC 不在域中时,将 LocalAccountTokenFilterPolicy 设置为 1(第 6 步会解释原因)。

运行两次也无妨:它会先删除自己的规则,因此最终只保留一组。

6. 理解远程 UAC 和 LocalAccountTokenFilterPolicy

默认情况下,当 本地 管理员通过网络连接到 PC 时,Windows 会去掉该登录的管理员权限。这是用户帐户控制的远程限制。结果令人困惑:端口已开放,密码正确,但读取仍然被拒绝,提示“WMI:拒绝访问 (0x80070005)”。

在 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 下将注册表值 LocalAccountTokenFilterPolicy 设置为 1,即可解除该限制,使本地管理员在远程时保留其权限。启用脚本只在域外的 PC 上设置它,因为域帐户不会以这种方式被过滤。

如果你改为手动准备 PC,应用中的远程操作指南给出了以下命令,请在该 PC 上以管理员身份在 PowerShell 中运行:

New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name LocalAccountTokenFilterPolicy -Value 1 -PropertyType DWord -Force

警告: 这会稍微降低该 PC 的防护:现在任何本地管理员帐户都可以通过网络使用。只在需要的地方使用,并为每台 PC 设置强且唯一的本地管理员密码。撤销脚本会将其删除,远程操作“恢复 UAC 远程限制”也可以。

7. 推广到其他 PC

试点 PC 读取正常后,对其他 PC 重复操作。

  • 逐台 PC,使用脚本。 从每台 PC 的卡片下载启用脚本并在那台 PC 上运行。脚本是针对 NetBlade 所在 PC 当前的 IP 地址生成的。这就是该地址不能改变的原因:一旦改变,防火墙规则就不再匹配,读取会停止,直到你运行新的脚本为止。
  • 在域中,使用组策略。 NetBlade 不生成策略,但可以集中实现相同的效果。对于 WinRM,应用本身给出的路径是:计算机配置 › 管理模板 › Windows 组件 › Windows 远程管理(Windows Remote Management) › WinRM 服务 › “允许通过 WinRM 进行远程服务器管理”。对于 WMI 和 SMB,常见做法是为 TCP 135、WMI 服务的 RPC 端口和 TCP 445 创建入站防火墙规则,并限制为仅允许 NetBlade 所在 PC 的地址。这属于通用的 Windows 管理操作,请先在一台 PC 上测试。
  • 扩大凭据范围。 试点成功后,打开 凭据,在该凭据上点击 适用范围…,将其扩展到 一个站点 或 所有位置。

然后读取所有 PC:设备 > 深度清单,或 站点 > 读取所有设备。站点会报告读取了多少台,以及有多少台没有适用的凭据。

8. 同时为远程操作做好准备(可选)

读取不使用 WinRM,但远程操作会用到。如果你打算使用远程操作,请在卡片上打开 远程操作,展开 远程计算机需要什么。应用会按通常缺失的顺序列出:

  1. 那台计算机上的管理员帐户,已保存在“凭据”中。
  2. 在远程计算机上开启 WinRM:Enable-PSRemoting -Force -SkipNetworkProfileCheck。
  3. 专用网络或域网络,而不是公用网络。在远程计算机上以管理员身份运行:
Get-NetConnectionProfile | Set-NetConnectionProfile -NetworkCategory Private
  1. 在域外,从 此 PC 信任该计算机(将示例替换为它的 IP):
Set-Item WSMan:\localhost\Client\TrustedHosts -Value '192.168.1.50' -Concatenate -Force
  1. 在域外使用本地帐户时,需要第 6 步中的 LocalAccountTokenFilterPolicy 注册表项。
  2. 没有 WinRM 时使用 PsExec:远程计算机需要开放端口 445 并启用 ADMIN$ 共享。要开放 445:
Enable-NetFirewallRule -Name 'FPS-SMB-In-TCP'

详细信息请参阅 安全地执行远程操作。

9. 如何撤销所有更改

在任何用脚本准备过的 PC 上,运行你保存的 撤销更改的脚本。它会删除 NetBlade 的防火墙规则以及本地帐户的远程管理访问权限。它会保留 WinRM 的开启状态;如果不需要,请以管理员身份在 PowerShell 中将其关闭:

Disable-PSRemoting

如果你没有保留撤销脚本,也可以在一个能正常工作的 NetBlade 中以远程操作的形式实现相同的结果:“恢复 UAC 远程限制”、对第 5 步中列出的每条 NetBlade - … 规则执行“删除防火墙规则”,以及“禁用 WinRM”。这些操作走的正是你要移除的访问途径,因此请把“恢复 UAC 远程限制”留到最后。保留撤销脚本更简单。

检查是否生效

  • 卡片的读取状态显示“已于 … 通过 … 读取”,并且 硬件、软件、系统 和 安全 选项卡都已填充内容。
  • 安全 选项卡显示 BitLocker 和 TPM 的状态,而不是“需要管理员权限”。
  • 在仪表板上,已读取的计算机 增加,覆盖率一行显示有多少台设备已被深度读取。

如果出现问题

  • “WMI:拒绝访问 (0x80070005)”。 该帐户未获授权。使用本地帐户或 Microsoft 帐户时,必须开启 LocalAccountTokenFilterPolicy(启用脚本会完成此设置)。在域中,请检查该帐户是否在 PC 的本地 Administrators 组中。
  • “WMI:登录失败 (0x8007052E)”。 用户名或密码错误。请检查格式:DOMAIN\user 或 .\Administrator。
  • “WMI:拒绝访问 (0x80041003)”。 该帐户在 WMI 命名空间上缺少权限。请使用管理员帐户。
  • “WMI:未授予登录类型 (0x80070569)”。 那台 PC 上的本地安全策略拒绝了该登录类型。请检查那台 PC 的本地安全策略。
  • “WMI 无响应(防火墙阻止,或不是 Windows)”。 防火墙阻止了 WMI,或者该设备不是 Windows。请运行启用脚本。
  • “没有适用于此设备的凭据”。 没有任何 Windows 凭据覆盖它。为该设备、站点或所有位置存放一个。
  • “无法在此帐户上读取已保存的密码”。 该凭据是由这台 PC 上的另一位 Windows 用户存放的。请以运行 NetBlade 的用户身份登录后重新存放。
  • 之前正常,后来所有 PC 同时停止读取。 NetBlade 所在 PC 的 IP 地址很可能发生了变化,导致规则不再匹配。请为它保留地址,并运行新的脚本。
  • 一个远程操作花了半分钟以上。 那台 PC 的防火墙阻止了远程服务管理,PsExec 会等待一段时间后才回退。请重新下载启用脚本并运行:当前版本也会开放这一项,并且仍然只对此 PC 开放。

下一步

PC 可以读取之后,请正确设置你的帐户:正确管理凭据。然后使用 SNMP 读取你的网络设备。

← 全部操作指南 功能指南 → 产品: NetBlade Windows →