Я написал довольно изящный скрипт PowerShell, который работает с VMware PowerCLI, чтобы клонировать пару виртуальных машин на второе устройство хранения и затем автоматически удалять их, когда они достигают определенного возраста. Кажется, он прекрасно работает, пока не дойдет до конца / начала месяца, тогда подход, который я использовал для даты и времени, кажется неудачным, и все клоны неожиданно удаляются. Вместо того, чтобы включать весь сценарий, вот кусочки, которые имеют значение.
Во-первых, когда создаются клоны, я использую следующий код ..
$vmdatestamp = (Get-Date).tostring('yyyyMMdd-HHmmss')
new-vm -Name $VM-$vmdatestamp -VM $VM -Datastore $CPFlag -vmhost host.domain.local -Location 'Regular Clone'
Эта переменная в конечном итоге создает Клон виртуальной машины с именем «VMName-20200214-040022» в том случае, если датой является 14 февраля 2020 года, а переменная записана в 4 часа утра, 00 минут и 22 секунды.
Затем в сценарии. есть раздел очистки, который перечисляет эти клонированные виртуальные машины и проверяет дату. Задача - запустить команду удаления, если клон старше 3 дней. Таким образом, существует foreach l oop, который запускает все виртуальные машины, найденные в определенной папке, «Regular Clone». $ vmls - это переменная в пределах l oop для каждой найденной виртуальной машины. Вот код, который я использую, чтобы проверить даты и удалить старше 3 дней.
#Grab matched string and doctor it to only look at 8 digit date.
$var1 = $vmls.name
$var2 = $var1 -split '-' | Select-String '\d{8}'
$var3 = $var2 -replace '(?S)'
#Grab todays date in the same 8 digit format then subtract to compare variance. How old is the clone?
$CompareDate = (Get-Date).tostring('yyyyMMdd')
$var4 = $CompareDate - $var3
#If clone is older than 3 days, delete it. Turn this knob based on your requirements.
if($var4 -gt '3') {
Так что это последнее выражение «если», которое проверяет $ var4 больше 3, где источник моей проблемы , Я не думаю, что сценарий достаточно умен, чтобы понять, если, например, сегодня 1-й, как работает минус «-». У кого-нибудь есть предложения, как лучше с этим справиться?
С уважением, Адам Тайлер