I-6 Accessing Power and Performance DataSub get2complement(raw, rv, bit)Select Case bitcase 4:If raw And &h8 Thenrv = 0 - ((&h10 - raw) and &h0f)Elserv = rawEnd Ifcase 8:If raw And &h80 Thenrv = 0 - ((&h100 - raw) and &h0ff)Elserv = rawEnd Ifcase 10:If raw And &h200 Thenrv = 0 - ((&h400 - raw) and &h3ff)Elserv = rawEnd IfEnd SelectEnd SubSub GetIDString(rv_ls, rv_ms, rc_ls, rc_ms)Dim tmpMessageDim outsdridstringtypeoinparams.networkfunction = &haoinparams.lun = 0oinparams.responderaddress = &h20oinparams.command = &h23oinparams.requestdata = array(rv_ls, rv_ms, rc_ls, rc_ms, 47, 1)oinparams.requestdatasize = 6set outsdridstringtype = oipmi.execmethod_("requestresponse",oinparams)Dim outsdridstringDim idlength, jidlength = outsdridstringtype.ResponseData(3) and 31oinparams.networkfunction = &haoinparams.lun = 0oinparams.responderaddress = &h20oinparams.command = &h23oinparams.requestdata = array(rv_ls, rv_ms, rc_ls, rc_ms, 48, idlength)oinparams.requestdatasize = 6set outsdridstring = oipmi.execmethod_("requestresponse",oinparams)tmpMessage = " ID String = "For j = 3 to idlength + 2tmpMessage = tmpMessage & Chr(outsdridstring.ResponseData(j))NextWScript.Echo tmpMessageEnd Sub'End Script