Не в состоянии запустить 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 { $_ }