PowerCLIВиртуализация VMware

PowerCLI. Проверка существования ВМ.

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

В простом виде скрипт будет выглядеть так:

Write-Host "Вставьте список серверов в текстовый документ"
Write-Host ""
$file = New-Item -Path $env:TEMP -Name "VM.txt" -Force
$openfile = Start-Process notepad.exe -FilePath $file.FullName -Wait 
(Get-Content $file.FullName) | foreach-object {$_ -replace " ", ""} | set-content $file.FullName
$K=0
$VMs = ""
$VMs = Get-Content -Path $file.FullName
if ($vms.count -eq 0) {Write-Host "Cписок серверов пуст, работа скрипта завершена!" -ForegroundColor Red
break}
Foreach($vm in $VMs) 
{
Try {
 Get-VM -Name $vm -ErrorAction Stop | Out-Null 
  } 
Catch {
 Write-Host "VM $($vm) не найдена" -ForegroundColor Red
$K=1
 } 
}
if ($K -eq 0) {
Write-Host "Все виртуальные машины существуют"
}
Write-Host ""
Remove-Item -Path $file.FullName

Здесь используется конструкция

Try {
 часть кода в которой ищем ошибку
}
Catch {

[тип ошибки, которую ищем]

кодкоторый будет выполнен когда ошибка будет найдена
}
Используется переменная  $K, которая принимает значение 1 когда хоть одна ВМ не найдена. Если же все машины найдены, то значение переменной не изменятся, и в этом случае выводится сообщение  “Все виртуальные машины существуют”.

Related Post

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.