I don't have a script but some of those properties are arrays, like the hard disks you need to expand those as needed. I think some of the other ones are views in extensiondata. If your familar with rest apis, it may be easier to grab the json file that the vcenter rest api can make. It returns a response like
{ "parallel_ports": {}, "cdroms": {}, "name": "string", "floppies": {}, "boot": { "enter_setup_mode": true, "retry": true, "efi_legacy_boot": true, "network_protocol": "IPV4", "delay": 0, "retry_delay": 0, "type": "BIOS" }, "disks": {}, "boot_devices": [ { "nic": "string", "disks": [ "string" ], "type": "CDROM" } ], "guest_OS": "DOS", "serial_ports": {}, "hardware": { "version": "VMX_03", "upgrade_status": "NONE", "upgrade_version": "VMX_03", "upgrade_policy": "NEVER" }, "nics": {}, "power_state": "POWERED_OFF", "memory": { "hot_add_increment_size_MiB": 0, "hot_add_enabled": true, "hot_add_limit_MiB": 0, "size_MiB": 0 }, "scsi_adapters": {}, "sata_adapters": {}, "cpu": { "count": 0, "hot_add_enabled": true, "hot_remove_enabled": true, "cores_per_socket": 0 } }
New vSphere 6.5 REST API and API Explorer