Массив снимков PowerCLI

Немного сбит с толку прямо сейчас, и мне было интересно, может ли сообщество дать мне такой быстрый импульс, чтобы помочь мне продолжить программу, над которой я работаю.

В какой-то момент в программе, над которой я работаю, я пытаюсь получить 6 новейших элементов из массива. Я хочу поместить переменную снимка в массив, чтобы получить все снимки внутри массива. Вот часть кода, которая смущает меня в данный момент:

$server = "test"
$date = get-date
$tempArray = @()
$snapshot = get-snapshot -VM "test"

foreach ($item in $snapshot){
    $tempArray += $item
}

$tempArray | sort
for ($i = 0; $i -le $tempArray.length-6; $i++){
    remove-item $tempArray[$i]
}

Достигаю ли я своей цели - получить переменную $ snapshot внутри моего массива, и правильно ли в цикле for удаляются все, кроме 6 самых новых?

РЕДАКТИРОВАТЬ: Исправлены небольшие проблемы, которые раньше не замечались.

2 ответа

Решение

Ваш код имеет несколько проблем. Я не уверен, исправит ли это ваш сценарий, но это кажутся очевидными проблемами, которые вы должны исправить в первую очередь.

foreach ($item in $snapshot){
    $tempArray++ -> this should be $tempArray += $item, right? if you are adding $item to the tempArray
}

$tempArray | sort
for ($i = 0; $i -le $tempArray.length-6; $i++){
    remove-item $snapshot -> this should be remove-item $tempArray[$i], right?
}

Выполните обратную сортировку по созданному атрибуту временной метки, а затем используйте Skip в выбранном объекте, чтобы получить все после 6 самых новых

$snapshot = get-snapshot -VM "test"

$snapshot | sort created -descending | select -Skip 6 | Remove-Snapshot -Confirm:$false
Другие вопросы по тегам