Maybe not the most elegant action but it works 🙂
Input Name: vm
Input Type: VC:VirtualMachine
Return Type: Properties
var val2return = new Properties
if (vm) {
var vm_instance_id = vm.Config.InstanceUuid
var vm_bios_id = vm.Config.Uuid
var os_bios_id = ""
var sccm_bios_id = ""
var moRef = vm.id
var temp_bios = ""
var temp_bios_arr = []
for each (item in vm_bios_id.split("-")) {
temp_bios = temp_bios + item
}
var sub_start = 0
do {
temp_bios_arr.push(temp_bios.substring(sub_start,sub_start + 2))
sub_start = sub_start + 2
} while (sub_start + 2 <= temp_bios.length)
sccm_bios_id = temp_bios_arr[3]
sccm_bios_id += temp_bios_arr[2]
sccm_bios_id += temp_bios_arr[1]
sccm_bios_id += temp_bios_arr[0]
sccm_bios_id += "-"
sccm_bios_id += temp_bios_arr[5]
sccm_bios_id += temp_bios_arr[4]
sccm_bios_id += "-"
sccm_bios_id += temp_bios_arr[7]
sccm_bios_id += temp_bios_arr[6]
sccm_bios_id += "-"
sccm_bios_id += temp_bios_arr[8]
sccm_bios_id += temp_bios_arr[9]
sccm_bios_id += "-"
sccm_bios_id += temp_bios_arr[10]
sccm_bios_id += temp_bios_arr[11]
sccm_bios_id += temp_bios_arr[12]
sccm_bios_id += temp_bios_arr[13]
sccm_bios_id += temp_bios_arr[14]
sccm_bios_id += temp_bios_arr[15]
sccm_bios_id = sccm_bios_id.toUpperCase()
var item_crc = 0
for each (item in temp_bios_arr) {
if (item_crc == 7) {
os_bios_id = os_bios_id + item + "-"
} else {
os_bios_id = os_bios_id + item + " "
}
item_crc++
}
os_bios_id = "VMware-" + os_bios_id.trim()
// the moid of the VM
val2return.moRef = moRef
// show with "wmic path win32_computersystemproduct get uuid" and found in the SCCM DB in the "SMBIOS_GUID0" Column
val2return.SCCMBiosID = sccm_bios_id
// windows: "wmic bios get serialnumber" and linux: "dmidecode -s system-serial-number"
val2return.OSBiosID = os_bios_id
// Used in vRA to find the vCenter VM
val2return.InstanceUUID = vm_instance_id
val2return.BiosID = vm_bios_id
}
return val2return
Drink coffee.. Do stupid things faster with more energy...