An alternative method, if you consider you're creating a new VM with no CD drive or SATA controller, here $cfg.iso_path holds the path to the ISO I wanted to connect to the CD drive, and $new_vm is the newly created VM (without -CD)
$vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec
$vmConfigSpec.DeviceChange = New-Object VMware.Vim.VirtualDeviceConfigSpec[] (2)
$vmConfigSpec.DeviceChange[0] = New-Object VMware.Vim.VirtualDeviceConfigSpec
$vmConfigSpec.DeviceChange[0].Device = New-Object VMware.Vim.VirtualAHCIController
$vmConfigSpec.DeviceChange[0].Device.DeviceInfo = New-Object VMware.Vim.Description
$vmConfigSpec.DeviceChange[0].Device.DeviceInfo.Summary = 'New SATA Controller'
$vmConfigSpec.DeviceChange[0].Device.DeviceInfo.Label = 'New SATA Controller'
$vmConfigSpec.DeviceChange[0].Device.Key = -103
$vmConfigSpec.DeviceChange[0].Device.BusNumber = 0
$vmConfigSpec.DeviceChange[0].Operation = 'add'
$vmConfigSpec.DeviceChange[1] = New-Object VMware.Vim.VirtualDeviceConfigSpec
$vmConfigSpec.DeviceChange[1].Device = New-Object VMware.Vim.VirtualCdrom
$vmConfigSpec.DeviceChange[1].Device.Connectable = New-Object VMware.Vim.VirtualDeviceConnectInfo
$vmConfigSpec.DeviceChange[1].Device.Connectable.Connected = $false
$vmConfigSpec.DeviceChange[1].Device.Connectable.AllowGuestControl = $true
$vmConfigSpec.DeviceChange[1].Device.Connectable.StartConnected = $true
$vmConfigSpec.DeviceChange[1].Device.Backing = New-Object VMware.Vim.VirtualCdromIsoBackingInfo
$vmConfigSpec.DeviceChange[1].Device.Backing.FileName = $cfg.iso_path
$vmConfigSpec.DeviceChange[1].Device.ControllerKey = -103
$vmConfigSpec.DeviceChange[1].Device.UnitNumber = 0
$vmConfigSpec.DeviceChange[1].Device.DeviceInfo = New-Object VMware.Vim.Description
$vmConfigSpec.DeviceChange[1].Device.DeviceInfo.Summary = 'New CD/DVD Drive'
$vmConfigSpec.DeviceChange[1].Device.DeviceInfo.Label = 'New CD/DVD Drive'
$vmConfigSpec.DeviceChange[1].Device.Key = -104
$vmConfigSpec.DeviceChange[1].Operation = 'add'
$vm_view = $new_vm | Get-View
$vm_view.reconfigVM($vmConfigSpec)