0 Replies Latest reply on Nov 28, 2018 2:59 AM by kaljoh

    Get-CINetworkAdapter broken VM parameter validation for unset or null values.

    kaljoh Lurker

      PowerCLI Get-CINetworkAdapter broken VM parameter validation for unset or null values.

       

       

      When trying to list network adapters for a VM surprisingly results in returning *all* the network adapters of *all* the VMs, if VM parameter for Get-CINetworkAdapter is accidentally null or unset.

       

       

      To reproduce the issue:

      PS C:\> Get-CINetworkAdapter -VM $unsetornullvariable

       

      Surprisingly that doesn't give an error, but instead it returns *all* the NICs of *all* the VMs!

       

       

      Expected behaviour:

      Error stating null or or empty variable, like when passing the same variable to vappnetwork argument.

       

       

       

       

      It's especially dangerous if used like:

       

       

      Get-CInetworkadapter -VM $vm | Set-CINetworkAdapter

       

       

      Which might result in unexpectedly modifying networking settings for *all* the VMs.

       

       

       

       

      NOTE! "VAppNetwork" parameter *does* have proper error handling and validation:

       

       

      PS C:\> Get-CInetworkadapter -VAppNetwork $unsetornullvariable

      Get-CINetworkAdapter : Cannot validate argument on parameter 'VAppNetwork'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.

      At line:1 char:35

       

       

      So only the "VM" parameter lacks proper error handling.

       

       

       

       

      Tested with PowerCLI 6.5.1 & 11.0.0 against vCloud director 9.1.0.2