Ваш сценарий по-прежнему выполняется из-за того, что командлет Get-WMIObject
не завершается, обратитесь к этой статье, чтобы понять Непрерывные ошибки в PowerShell
Если вы хотите остановить сценарий, когда Get-WMIObject
] генерирует ошибку, просто добавьте –ErrorAction Stop
$NICs = Get-WMIObject Win32_NetworkAdapterConfiguration -computername $computer –ErrorAction Stop | where { Ваш сценарий по-прежнему выполняется из-за того, что командлет Get-WMIObject
не завершается, обратитесь к этой статье, чтобы понять Непрерывные ошибки в PowerShell
Если вы хотите остановить сценарий, когда Get-WMIObject
] генерирует ошибку, просто добавьте –ErrorAction Stop
[110] Если вы хотите получить дополнительную информацию об ошибке «RPC-сервер недоступен», вы можете проверить, что «Инструментарий управления Windows (WMI-In») ) »правило включено в брандмауэре для каждой удаленной машины, как описано в этого ответа .
.IPEnabled -eq “TRUE”}
Если вы хотите получить дополнительную информацию об ошибке «RPC-сервер недоступен», вы можете проверить, что «Инструментарий управления Windows (WMI-In») ) »правило включено в брандмауэре для каждой удаленной машины, как описано в этого ответа .
Будьте осторожны, используя это с большими диапазонами, но это элегантный способ сделать это:
(x.to_a & y.to_a).empty?
Эффективный путь состоит в том, чтобы сравнить пределы
(x.first <= y.last) and (y.first <= x.last)
Если диапазон включает или начало или конец второго диапазона, то они накладываются.
(x === y.first) or (x === y.last)
совпадает с этим:
x.include?(y.first) or x.include?(y.last)
Но если я хочу, чтобы это было "верно", когда существует частичное перекрытие между двумя диапазонами, как я записал бы это?
Можно преобразовать диапазоны в массив и использовать &
оператор (соединение). Это возвращает новый массив со всеми элементами, происходящими в обоих массивах. Если полученный массив не пуст, который означает, что существуют некоторые перекрывающиеся элементы:
def overlap?(range_1, range_2)
!(range_1.to_a & range_2.to_a).empty?
end
Если вы проверяете перекрытие, я бы просто сделал
(x.include? y.first) or (x.include? y.last)
, поскольку один диапазон должен включать по крайней мере один из концов другого. Для меня это более интуитивно понятно, чем принятый ответ на объединение, хотя и не так эффективно, как сравнение пределов MarkusQ.