首先,我不确定这是否是正确的形式,但它似乎是最合适的。
对于管理自动化项目,我试图识别整个网络中服务器上的电源单元。目前,我使用 PowerShell 脚本执行此操作。我尝试使用 Get-WmiObject 和类 CIM_PowerSupply、CIM_UninturruptiblePowerSupply 和 Win32_Battery,但每个都返回一个空集合。
对于这些命令来说,这种行为是否正常?如果是,是否有任何其他接口可以查询该硬件?
答案1
服务器(至少是我习惯使用的 HP 和 Dell 服务器)通常内置有用于单独管理网络的接口。HP 服务器名为 iLO(集成灯光熄灭)。Dell 服务器名为 iDRAC。其理念是这些服务器通过以太网连接到 IP 网络,但通常与生产网络不同,通过 VLAN 或物理隔离。这些管理接口使您可以访问硬件诊断、BIOS 设置,以及远程查看 POST 过程的能力。这通常包括安装 iso 或远程可启动媒体的能力,并使用它来启动服务器,而无需在房间内,理论上可以从互联网上的任何地方启动。
但是,除非您使用管理系统,否则这些接口通常无法在服务器本身的操作系统内访问。您尝试使用的 WMI 对象是 UPS 的对象,其中 UPS 通过专用连接(例如 USB 电缆)连接到服务器。此连接的目的是在给定条件下向服务器发出关闭信号。
因此,简短的回答是,是的,如果您的系统没有连接 UPS,这种行为是正常的。
要收集所需的信息,您可能需要参考服务器上可用的任何管理系统(如果有)。否则,如果您需要的只是电源规格,您可以从发票中提取信息或进行实物盘点。