Description of problem: Environment details: * The Virtual Machine Manager Console is a Windows 2012 Standard * The 4 hosts are Windows 2012 Datacenter * The VMs running are from windows 2003 r2 to windows 2012 standard [----] I, [2015-01-28T12:24:59.375223 #57993:640898] INFO -- : MIQ(EmsRefresh::Parsers::Scvmm.ems_inv_to_hashes) Collecting data for EMS name: [IPS_Hyper-V] id: [1000000000002]... [----] E, [2015-01-28T12:28:08.488412 #57993:640898] ERROR -- : MIQ(Class#log_dos_error_results) #< CLIXML <Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><S S="Error">Select-Object : Cannot process argument because the value of argument "obj" is _x000D__x000A_</S><S S="Error">null. Change the value of argument "obj" to a non-null value._x000D__x000A_</S><S S="Error">At line:19 char:42_x000D__x000A_</S><S S="Error">+ $dvds = Get-SCVirtualDVDDrive -VM $_ | Select-Object -ExpandProperty "ISO"_x000D__x000A_</S><S S="Error">+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_x000D__x000A_</S><S S="Error"> + CategoryInfo : InvalidArgument: (:) [Select-Object], PSArgument _x000D__x000A_</S><S S="Error"> NullException_x000D__x000A_</S><S S="Error"> + FullyQualifiedErrorId : ArgumentNull,Microsoft.PowerShell.Commands.Selec _x000D__x000A_</S><S S="Error"> tObjectCommand_x000D__x000A_</S><S S="Error"> _x000D__x000A_</S><S S="Error">Select-Object : Cannot process argument because the value of argument "obj" is _x000D__x000A_</S><S S="Error">null. Change the value of argument "obj" to a non-null value._x000D__x000A_</S><S S="Error">At line:19 char:42_x000D__x000A_</S><S S="Error">+ $dvds = Get-SCVirtualDVDDrive -VM $_ | Select-Object -ExpandProperty "ISO"_x000D__x000A_</S><S S="Error">+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_x000D__x000A_</S><S S="Error"> + CategoryInfo : InvalidArgument: (:) [Select-Object], PSArgument _x000D__x000A_</S><S S="Error"> NullException_x000D__x000A_</S><S S="Error"> + FullyQualifiedErrorId : ArgumentNull,Microsoft.PowerShell.Commands.Selec _x000D__x000A_</S><S S="Error"> tObjectCommand_x000D__x000A_</S><S S="Error"> _x000D__x000A_</S><S S="Error">Select-Object : Cannot process argument because the value of argument "obj" is _x000D__x000A_</S><S S="Error">null. Change the value of argument "obj" to a non-null value._x000D__x000A_</S><S S="Error">At line:19 char:42_x000D__x000A_</S><S S="Error">+ $dvds = Get-SCVirtualDVDDrive -VM $_ | Select-Object -ExpandProperty "ISO"_x000D__x000A_</S><S S="Error">+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_x000D__x000A_</S><S S="Error"> + CategoryInfo : InvalidArgument: (:) [Select-Object], PSArgument _x000D__x000A_</S><S S="Error"> NullException_x000D__x000A_</S><S S="Error"> + FullyQualifiedErrorId : ArgumentNull,Microsoft.PowerShell.Commands.Selec _x000D__x000A_</S><S S="Error"> tObjectCommand_x000D__x000A_</S><S S="Error"> _x000D__x000A_</S><S S="Error">Select-Object : Cannot process argument because the value of argument "obj" is _x000D__x000A_</S><S S="Error">null. Change the value of argument "obj" to a non-null value._x000D__x000A_</S><S S="Error">At line:19 char:42_x000D__x000A_</S><S S="Error">+ $dvds = Get-SCVirtualDVDDrive -VM $_ | Select-Object -ExpandProperty "ISO"_x000D__x000A_</S><S S="Error">+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_x000D__x000A_</S><S S="Error"> + CategoryInfo : InvalidArgument: (:) [Select-Object], PSArgument _x000D__x000A_</S><S S="Error"> NullException_x000D__x000A_</S><S S="Error"> + FullyQualifiedErrorId : ArgumentNull,Microsoft.PowerShell.Commands.Selec _x000D__x000A_</S><S S="Error"> tObjectCommand_x000D__x000A_</S><S S="Error"> _x000D__x000A_</S><S S="Error">Select-Object : Cannot process argument because the value of argument "obj" is _x000D__x000A_</S><S S="Error">null. Change the value of argument "obj" to a non-null value._x000D__x000A_</S><S S="Error">At line:19 char:42_x000D__x000A_</S><S S="Error">+ $dvds = Get-SCVirtualDVDDrive -VM $_ | Select-Object -ExpandProperty "ISO"_x000D__x000A_</S><S S="Error">+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_x000D__x000A_</S><S S="Error"> + CategoryInfo : InvalidArgument: (:) [Select-Object], PSArgument _x000D__x000A_</S><S S="Error"> NullException_x000D__x000A_</S><S S="Error"> + FullyQualifiedErrorId : ArgumentNull,Microsoft.PowerShell.Commands.Selec _x000D__x000A_</S><S S="Error"> tObjectCommand_x000D__x000A_</S><S S="Error"> _x000D__x000A_</S><S S="Error">Read-SCGuestInfo : Virtual Machine WDS-IPS cannot be modified because Virtual _x000D__x000A_</S><S S="Error">Guest Services is not installed on the guest operating system or because the _x000D__x000A_</S><S S="Error">installed Virtual Guest Services does not support the Heartbeat and Data _x000D__x000A_</S><S S="Error">Exchange Integration Services in the current virtual machine status. (Error _x000D__x000A_</S><S S="Error">ID: 30101)_x000D__x000A_</S><S S="Error"> _x000D__x000A_</S><S S="Error">Verify the virtual machine is in a Running status, the Virtual Guest Services _x000D__x000A_</S><S S="Error">is installed, and the Heartbeat and Data Exchange Integration Services are _x000D__x000A_</S><S S="Error">enabled._x000D__x000A_</S><S S="Error">At line:14 char:16_x000D__x000A_</S><S S="Error">+ $networks = Read-SCGuestInfo -VM $_ -Key "NetworkAddressIPv4"_x000D__x000A_</S><S S="Error">+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_x000D__x000A_</S><S S="Error"> + CategoryInfo : ReadError: (:) [Read-SCGuestInfo], CarmineExcept _x000D__x000A_</S><S S="Error"> ion_x000D__x000A_</S><S S="Error"> + FullyQualifiedErrorId : 30101,Microsoft.SystemCenter.VirtualMachineManag _x000D__x000A_</S><S S="Error"> er.Cmdlets.ReadScGuestInfoCmdlet_x000D__x000A_</S><S S="Error">Select-Object : Cannot process argument because the value of argument "obj" is _x000D__x000A_</S><S S="Error">null. Change the value of argument "obj" to a non-null value._x000D__x000A_</S><S S="Error">At line:19 char:42_x000D__x000A_</S><S S="Error">+ $dvds = Get-SCVirtualDVDDrive -VM $_ | Select-Object -ExpandProperty "ISO"_x000D__x000A_</S><S S="Error">+ Version-Release number of selected component (if applicable): 5.3.2 How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
I see a couple errors in that stack trace: 1) Looks like a Virtual DVD Drive is causing a problem? FullyQualifiedErrorId : 30101,Microsoft.SystemCenter.VirtualMachineManager.Cmdlets.ReadScGuestInfoCmdletSelect-Object : Cannot process argument because the value of argument "obj" is null. Change the value of argument "obj" to a non-null value. At line:19 char:42+ $dvds = Get-SCVirtualDVDDrive -VM $_ | Select-Object -ExpandProperty "ISO" 2) An error trying to get information about the network address? Read-SCGuestInfo : Virtual Machine WDS-IPS cannot be modified because Virtual Guest Services is not installed on the guest operating system or because the installed Virtual Guest Services does not support the Heartbeat and Data Exchange Integration Services in the current virtual machine status. (Error ID: 30101) Verify the virtual machine is in a Running status, the Virtual Guest Services is installed, and the Heartbeat and Data Exchange Integration Services are enabled. At line:14 char:16+ $networks = Read-SCGuestInfo -VM $_ -Key "NetworkAddressIPv4"
Hi Josh, A couple of questions: 1) You reported the above errors after you made the code change but did the customer see those also? Or are they as a result of the change you made? 2) Apart from errors in the logs, what problem is the customer seeing? Missing inventory? thanks
Hi John, Our SCVMM integration has only been tested with Powershell V4 but it turns out this did not make it to the list of documented requirements. The error reported above in comment 2 number 1) is caused by a bug in Powershell versions 1,2 and 3. My question is, should I invest the time in supporting old versions of Powershell or should we update the list of requirements and have customers upgrade to Powershell V4? thanks Bronagh
Two things: 1) Since this bug was opened, SCVMM has gone from tech preview to GA. So, now I believe that means it's fully supported. 2) I'm changing this to a doc bug to indicate in the documentation that there are two requirements when integrating with SCVMM Requirement 1. SCVMM R2 or better is required Requirement 2. Powershell v4 or better is required We depend on specific features of both of those in our implementation and require that both of those requirements be met.
Moving to status 'NEW' for triaging in the documentation queue.