Исключить часть имени сервера из скрипта Get-Snapshot PowerShell

То, что я пытаюсь сделать, это получить список снимков виртуальной машины, но исключить любые снимки, которые содержат соглашение об именовании виртуальных машин "ABCDE", и что снимки имеют возраст более 3 дней, и вывести его в текстовый файл.

У меня есть следующий сценарий, но он не исключает серверы, начинающиеся с "ABCDE".

# Get VM Snapshot Information excluding anything with HEIEPC

Get-VM | Where {$_.Name -ne "ABCDE"} |
    Get-Snapshot |
    Where-Object { $_.Created -lt (Get-Date).AddDays(-3) } |
    Format-List | Out-File $Log -Append

1 ответ

Вы проверяете виртуальные машины с точным именем "ABCDE". Чтобы проверить виртуальные машины, чье имя начинается с "ABCDE", используйте -like оператор и подстановочный знак:

Get-VM | Where { $_.Name -notlike 'ABCDE*' } | ...

Сделать шаблон *ABCDE* если вы хотите исключить виртуальные машины с подстрокой "ABCDE" в любом месте их имени (а не только в начале).

Другие вопросы по тегам