Перейти к содержимому

vmware

Как автоматизировать установку horizon client на пк пользователей не в домене

Задача установить клиента с подключением powershell

#requires -Version 3.0

<#
.SYNOPSIS
    Автоматический запуск VMware Horizon Client с установкой при необходимости.
.DESCRIPTION
    Скрипт проверяет доступность VDI-сервера, наличие клиента,
    при отсутствии — скачивает и устанавливает его, затем запускает подключение.
#>

$ErrorActionPreference = "Stop"
$ProgressPreference = "SilentlyContinue"

# === Настройки ===
$Server = "vdi.admin.ru"
$InstallerUrl = "https://$Server/portal/downloads/VMware-Horizon-Client-2406.exe"
$InstallerPath = "$env:TEMP\VMware-Horizon-Client-2406.exe"
$ClientPath = "${env:ProgramFiles}\VMware\VMware Horizon View Client\vmware-view.exe"
$LogPath = "$env:TEMP\vdi-client-setup.log"

# === Функция логирования ===
function Write-Log {
    param(
        [string]$Message,
        [ValidateSet("Info", "Warning", "Error", "Success", "Debug")]
        [string]$Type = "Info"
    )

    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    $logEntry = "[$timestamp] [$Type] $Message"

    # Запись в файл
    
Читать далее

Как найти кому принадлежат несвязанные объекты vSAN Virtual Objects Unknown object type через powershell powercli

Ошибка на vmware vsan Unknown object type

Прежде чем чистить надо найти что за файлы и кому принадлежат

$vcenter = "vcsa01"
Connect-VIServer $vcenter
$Datacenter_name = "Mos*"

$ClusterName= `
Get-Datacenter -Name $Datacenter_name | Get-Cluster | Where-Object {$_.Name -like 'CL01' } 


$clusterView = Get-Cluster $ClusterName
$ClusterMoRef = $Clusterview.ExtensionData.MoRef
$vmhost = ($clusterView | Get-VMHost) #| select -First 1
$vsanIntSys = Get-View $vmhost.ExtensionData.configManager.vsanInternalSystem

$vsanClusterObjectSys = Get-VsanView -Id VsanObjectSystem-vsan-cluster-object-system
$results = (($vsanClusterObjectSys.VsanQueryObjectIdentities($clusterMoRef,$null,$null,$true,$true,$false)).Identities | where {$_.Vm -eq $null})


foreach ($result in $results) {
$jsonResult = ($vsanIntSys.GetVsanObjExtAttrs($result.Uuid)) | ConvertFrom-JSON
foreach ($object in $jsonResult | Get-Member) {
if($($object.Name) -ne "Equals" -and $($object.Name) -ne "GetHashCode" -and $($object.Name) -ne "GetType" 
Читать далее

Как исправить ошибку в VMware Horizon при создании мгновенных клонов(instant clone).

Ошибка в коллекции:

Provisioning error occurred for Machine : Resync operation failed
Automatic error recovery for Pool operatorvdi: attempting to resync Machine
Automatic error recovery for Pool operatorvdi: attempting recovery for Machine
Provisioning error occurred for Machine : Cloning failed for Machine
Provisioning disabled for Pool

После анализа. Стало понятно что виновата cp-replica дохлая.

Надо её удалить.

Но удалить её нельзя просто.

Идём на сервер Horizon  . и заходим в cmd

cd C:\Program Files\VMware\VMware View\Server\tools\bin
iccleanup.cmd -vc vcsa.voxys.ru -uid admin@adminbd.ru -skipCertVeri
list

надо удалить 3

delete --index 3

Теперь нормальная картина две коллекции два темплейта и реплики  .

 

Как сделать что бы VM в veeam добавлялись в задание автоматически. Сделал TAG для vm vmware Powercli.

Задача. Есть много машин vm на vSphere. Нужно что бы машины vm сами попадали в задание по бэкапу. Так как 3 разных домена будем делать три задания и три разных учетные записи.  Плюс еще отдельным заданием linux машины.

Буду назначать на VM разные tag  с помощью powercli . Так же должна быть возможность исключить из бэкапа vm через vSphere

В vSphere создаём категорию Backup

в ней TAgs

После этого написал скрипт для назначение tags виртуалкам по критериям.

$vcenter = "vcsa01"
Connect-VIServer $vcenter
$Datacenter_name = "Moscow*"
 
$FileContent= `
Get-Datacenter -Name $Datacenter_name | Get-Cluster | Where-Object {$_.Name -notlike 'L05' } | Get-VM   
Читать далее

Как сделать отчет vm с тегами(tags) и записями блокнота(Note) с помощью Vmware powercli в одну строку.

Задача выгрузить vm с тегами и записями в csv

$vcenter = "msk-vc.bd.ru"

Connect-VIServer $vcenter 

$Locations = ('Data')

$VmInfo = ForEach ($Datacenter in (Get-Datacenter -Name $Locations)) {

     ForEach ($VM in ($Datacenter | Get-VM | where {$_.powerstate -match "on"} | Get-VMGuest)) {

        $vm | Select @{N="VM_NAME#";E={$vm.VM.name}},

           # @{N="VM_CPU_Core#";E={$VM.VM.NumCPU}},

           # @{N="VM_IP#";E={$vm.IPAddress}},

            @{N="VM_OS";E={$vm.OSFullName}},

            @{N="VM_DC";E={$Datacenter.name}},

            @{N='VM_Cluster';E={(Get-Cluster -VM $VM.VM).Name}},

            @{N="VM_NOTES";E={$VM.VM.Notes.Replace("`n",'/')}},

            @{N='VM_Tags';E={(Get-TagAssignment -Entity $VM.VM).Tag.Name -join '|'}}

     }

}

$VmInfo | Export-Csv -Path "c:\tmp\testnotes.csv" -NoTypeInformation -UseCulture -Encoding "UTF8"

Чуть другой скрипт

# Connect to the vCenter
#Connect-VIServer vCenter1 -user user1 -Password "password"
Connect-VIServer msk-vcs.bd.ru
 
 $Locations = ('DataS')
 
#Create vmInfo object
$vmInfo = @()
$vmInfoTemp = New-Object "PSCustomObject"
$vmInfoTemp 
Читать далее

Как заставить Cisco IP Communicator подхватывать настройки пользователя в vdi horizon Instant Clone not run as administrator.

Суть проблемы в том что Cisco IP Communicator не сохраняет настройки Device Name у пользователя при работе в vdi horizon Instant Clone.

В horizon Instant Clone каждый раз машина пересоздается и у нею каждый раз генериться mac .

C технологией horizon Instant Clone настроено еще fslogix перемещаемый профиль.

Суть в том что настройки Device Name Cisco IP Communicator меняются в ветки реестра Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Cisco Systems, Inc.

Но при этом у пользователя в ветке реестра HKCU:\Software\Cisco Systems, Inc.\Communicator остается информация о Device Name.

Дабы исправить данную проблему сделал скрипт на powershell :

$value = Get-ItemProperty  -Path "HKCU:\Software\Cisco Systems, Inc.\Communicator" -name HostName
 
Set-ItemProperty 
Читать далее

Как сделать автоматизированную подготовку полного клона для VMware Horizon. VMware Horizon Automated Full Clone Provisioning

1. Подготовьте золотой образ

  1. Создайте чистый образ Gold в vCenter, который управляет кластером ресурсов VDI.
  2. Установите VMware Tools в свой образ
  3. Установите агент Horizon в свой образ
  4. Перезагрузите образ Gold при появлении запроса
  5. Убедитесь, что у вас есть локальная учетная запись администратора на образе
  6. Запустите VMware Optimization Tool на золотом образе
    • Убедитесь, что «Microsoft OneDrive» не выбран (необязательно)
    • Убедитесь, что флажок «Удалить сторонние приложения» не выбран (необязательно)
  7. Создайте папку на образе Gold (C:\Temp)

Обратите внимание : если вам нужно присоединить образ Gold к домену для распространения привилегий пользователей, рекомендуется разместить образ Gold в изолированной организационной единице, чтобы у вас не … Читать далее

Как исправить ошибку Certificate validation failed. При подключении к vCenter из vmware horizon

Ошибки на connect server horizon C:\ProgramData\VMware\VDM\logs

2022-09-13T11:11:08.024+03:00 ERROR (1238-1A54) <ajp-nio-127.0.0.1-8009-exec-7> [Connection4] Connection to the vCenter Server https://msk-vcsa01.adminbd.ru:443/sdk failed.
2022-09-13T11:11:08.031+03:00 DEBUG (1238-1A54) <ajp-nio-127.0.0.1-8009-exec-7> [Connection4] [EXCEPTION] Connection to the vCenter Server https://msk-vcsa01.adminbd.ru:443/sdk failed.: javax.xml.ws.WebServiceException: Could not send Message. com.vmware.vdi.logger.Logger.debug(Logger.java:44)
javax.xml.ws.WebServiceException: Could not send Message.
    at org.apache.cxf.jaxws.JaxWsClientProxy.mapException(JaxWsClientProxy.java:183)
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)
    at com.sun.proxy.$Proxy273.retrieveServiceContent(Unknown Source)
    at com.vmware.vdi.vcwrapper.Connection4.connect(SourceFile:199)
    at com.vmware.vdi.vcwrapper.Connection4.connect(SourceFile:173)
    at com.vmware.vdi.vcwrapper.ConnectionManager.getConnection4(SourceFile:93)
    at com.vmware.vdi.vlsi.server.utils.certificate.VirtualCenterCertificateHandler.validate(VirtualCenterCertificateHandler.java:60)
    at com.vmware.vdi.vlsi.server.utils.certificate.ServerSpecCertificateHandler.validate(ServerSpecCertificateHandler.java:42)
    at com.vmware.vdi.vlsi.server.utils.certificate.ServerSpecCertificateHandler.validate(ServerSpecCertificateHandler.java:10)
    at com.vmware.vdi.vlsi.server.utils.certificate.CertificateServer.validate(CertificateServer.java:58)
    at com.vmware.vdi.vlsi.server.utils.certificate.CertificateServer.validate(CertificateServer.java:41)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at com.vmware.vdi.vlsi.rest.service.impl.VlsiMethodWrapper.invoke(VlsiMethodWrapper.java:49)
    at com.vmware.vdi.vlsi.rest.reflect.impl.VlsiInvocation.invoke(VlsiInvocation.java:81)
    at com.vmware.vdi.vlsi.rest.reflect.ReflectEngine.invokeService(ReflectEngine.java:79)
    at com.vmware.vdi.vlsi.rest.RestApiServlet.doPost(RestApiServlet.java:145)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.filters.FailedRequestFilter.doFilter(FailedRequestFilter.java:97)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at 
Читать далее

Как сделать балансировку для vmware horizon на haproxy.

Есть два сервера horizoncs01 и horizoncs02.

Конфиг на haproxy

#horizon.adminbd.ru
backend horizon.adminbd.ru
    mode        http
    option      forwardfor header X-Client
    balance     roundrobin
    retries     2
    option http-keep-alive
    option redispatch
    option httpchk
    option prefer-last-server
    #http-check connect
    http-check send meth GET uri / ver HTTP/1.1 hdr host horizon.adminbd.ru
    http-check expect status 200-399
    timeout connect 11s
    timeout server  3600s
    timeout queue   300s
    cookie VSERVERID insert indirect nocache

    # Horizon 
server horizoncs01 horizoncs01.adminbd.ru:443 check ssl verify none check cookie horizoncs01
server horizoncs02 horizoncs02.adminbd.ru:443 check ssl verify none check cookie horizoncs02

Настройка на самих серверах horizoncs

В папке C:\Program Files\VMware\VMware View\Server\sslgateway\conf

Создаём файл  locked.properties в нём прописываем

balancedHost=horizon.adminbd.ru
Читать далее

Как исправить ошибку Details: Failed to acquire agent managed by VBR server. Veeam

Был установлен новый сервер управления veeam. И при перенатравлении на него возникает ошибка Skipping  server Details: Failed to acquire agent managed by server VBR server.

Хотя перед этим удалял с сервера veeam

Решается удалением из реестра ветки.

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Veeam\]


 

Яндекс.Метрика