Не в состоянии запустить Compare-Object в Windows 10

Я пытаюсь запустить Compare-Object для смонтированного ISO. Эти 3 строки прекрасно работают с v 4.0 в Windows 8.1.

$Driveletters = (Get-Volume).Driveletter
$SetupDriveLetter = (Mount-DiskImage -ImagePath "Mypath")
$ISODriveletter = (Compare-Object -ReferenceObject $DriveLetters -DifferenceObject (Get-Volume).DriveLetter).InputObject 

Когда я запускаю те же строки в Windows 10, я получаю следующую ошибку. Что я делаю неправильно? Есть ли у кого-нибудь предложения, я был бы очень признателен.

Compare-Object: Невозможно привязать аргумент к параметру ReferenceObject, поскольку он имеет значение null. В строке:1 символ:55 + ... ODriveletter = (Compare-Object -ReferenceObject $DriveLetters -Differ ... + ~~~~~~~~~~~~~ + CategoryInfo: InvalidData: (:) [Сравнить -Object], ParameterBindingValidationException + FullyQualifiedErrorId: ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObjectCommand

1 ответ

Как определено в комментариях, ваш $DriveLetters массив содержит хотя бы один $null-значение Вы можете отфильтровать элементы без значения, используя Where-Object:

$DriveLetters = (Get-Volume).DriveLetter |Where-Object { $_ }
Другие вопросы по тегам