的IBM i(AS400)CIM和以太网接口
问题描述:
我试图检查以太网卡状态远程的IBM i(AS400)机器上后,wbemcli命令:田的IBM i(AS400)CIM和以太网接口
wbemcli -nl ei ".../root/cimv2:IBMOS400_EthernetPort"
吨似乎说明该卡的状态,其中大多数为空:
(...)
-OperationalStatus=2
-StatusDescriptions="THE LINE IS IN USE."
-Status=
-HealthState=
-CommunicationStatus=
-DetailedStatus=
-OperatingStatus=
-PrimaryStatus=
-EnabledState=2
-OtherEnabledState=
-RequestedState=5
-EnabledDefault=6
-TimeOfLastStateChange=
-AvailableRequestedStates=
-TransitioningToState=12
(...)
-Availability=3
-StatusInfo=
(...)
唯一的非空字段只包含整数,我真的不知道该怎么做。有没有人有线索?我正在写一个脚本,前提是OperationalStatus = 2表示“UP”,否则“DOWN”,但这不可靠。
谢谢,
答
使用搜索条件AS400可能是徒劳的;操作系统被称为IBM i多年,这就是当前文档的发现地点。无论如何,服务器运行的是IBM i的哪个版本?如果它真的很老,你可能还没有很好的CIM支持。以下是7.1的手册:(从知识中心开始)IBM i 7.1 > Systems management > Common Information Model > Reference information for CIM > Hardware inventory and network management providers > IBM_EthernetPort不幸的是,IBM的CIM实现与CIM的模式一样。下面是Schema 2.40 CIM-Device一个链接,显示OperationalStatus的,但简单地定义它为UINT16 []
有可能是另一种疑难杂症 - IBM的新版本,我可以被虚拟化,你可能无法看到通过CIM的物理硬件。我不知道这个事实;这是你需要研究的东西。
编辑:如何使用PASE测试: 事实证明,在IBM i 7.1(有适当的PTF)和7.2(我的版本)有CIM命令行命令可用,所以我花了一点时间,并尝试了一些出来。他们在PASE(call qp2term
)中运行:
cimcli ni IBM_EthernetPort
IBM_EthernetPort.CreationClassName="IBM_EthernetPort",DeviceID="ETHLINE",SystemCreationClassName="IBMOS400_ComputerSystem",SystemName="my.system.com"
IBM_EthernetPort.CreationClassName="IBM_EthernetPort",DeviceID="ETHLINEPUB",SystemCreationClassName="IBMOS400_ComputerSystem",SystemName="my.system.com"
IBM_EthernetPort.CreationClassName="IBM_EthernetPort",DeviceID="ETHLINEPVT",SystemCreationClassName="IBMOS400_ComputerSystem",SystemName="my.system.com"
cimcli ei IBM_EthernetPort
path= IBM_EthernetPort.CreationClassName="IBM_EthernetPort",DeviceID="ETHLINE",SystemCreationClassName="IBMOS400_ComputerSystem",SystemName="my.system.com"
//Instance of IBM_EthernetPort
instance of IBM_EthernetPort
{
InstanceID = NULL;
Caption = "Ethernet port ETHLINE";
Description = "Ethernet port information for ETHLINE.";
ElementName = "ETHLINE";
InstallDate = NULL;
Name = "ETHLINE";
OperationalStatus = {2};
StatusDescriptions = {"The line is in use."};
Status = NULL;
HealthState = NULL;
CommunicationStatus = NULL;
DetailedStatus = NULL;
OperatingStatus = NULL;
PrimaryStatus = NULL;
EnabledState = 2;
OtherEnabledState = NULL;
RequestedState = 5;
EnabledDefault = 6;
...