Хотя $ CompatiableOS содержит выходные данные $ OSverions, однако -contains используется только для одного тестового значения и возвращает true, если тестовое значение точно соответствует хотя бы одному из контрольных значений.Однако, когда тестовое значение является коллекцией, оператор Contains использует равенство ссылок.Он возвращает TRUE, только если одно из опорных значений является одним и тем же экземпляром объекта тестового значения.Важно то, что в этом случае они должны быть одного экземпляра.Например:
PS> «abc», «def», «ghi» - содержит «abc», «def»
-> False
PS> $ a= "abc", "def"
PS> "abc", "def", "ghi" - содержит $ a
-> False
PS> $ a, "ghi" - содержит $ a
-> True
Обратите внимание, как последний возвращает true из-за того же экземпляра, а остальные были ложными.Таким образом, используя -contains, вы получили False.Однако, когда вы используете формат содержимого (..), он не проверяет один и тот же экземпляр и, таким образом, возвращает True, в вашем случае.