Я пытаюсь запустить длинную команду PowerCLI в сценарии powershell и вывести ее на консоль в зависимости от ее успеха.Команда выполняется и успешно выполняется, но НЕ запускает вывод об успешном завершении.
Я попытался сделать всю команду переменной, но безуспешно.Я подозреваю, что есть более продвинутый способ сделать это, о котором я просто не знаю.
Try{
#get list of all vms
Write-Host "Collecting data and adding to file..."
[Environment]::NewLine
#create list of VMs in a variable
$vmList = Get-VM -ErrorAction Stop
#collect the VMWare Disk List here.
#run the list through the appropriate filters and prompt for success (failure will initiate the catch)
if ($vmList | Where-Object {$_.PowerState -eq "PoweredOff" -and $_.ExtensionData.config.ManagedBy.ExtensionKey -ne 'com.vmware.vcDr'} | Select-Object Name, @{N="Disk (GB)"; E={[math]::Round(($_ | Get-HardDisk | Measure-Object CapacityGB -Sum).sum)}}, @{N="Power State"; E={$_.PowerState}} | Export-Csv -Append -LiteralPath c:\temp\VMdiskTotals.csv) {
Write-Host "vCenter Disk Collection for " $vcenter " Successful!"
}
}
Catch{
Write-Host "Failed to collect the data from " $vcenter.Vcenter -ForegroundColor Red
}
Я хочу, чтобы это запустило команду, и если она завершится без ошибок, выведите:
"vCenter Disk Collection для" $ vcenter "Successful!"
, если команда выдает ЛЮБУЮ ошибку, она должна вызвать перехват и вывод:
Write-Host "Не удалось собрать данныеот "$ vcenter.Vcenter -ForegroundColor Red