Avec la commande ViewDbChk, vous pouvez résoudre les incohérences dans les bases de données qui stockent des informations sur les machines virtuelles de poste de travail dans un pool de postes de travail automatisé et des hôtes RDS dans une batterie de serveurs automatisée.

Dans un environnement Horizon 7, les informations sur les machines virtuelles de poste de travail et les hôtes RDS dans une batterie de serveurs automatisée sont stockées dans les emplacements suivants :

  • Base de données LDAP
  • Base de données vCenter Server
  • Pour les machines de clone lié View Composer uniquement : la base de données View Composer

Normalement, vous pouvez récupérer les erreurs qui se produisent lors du provisionnement ou d'autres opérations en supprimant ou en réinitialisant une machine virtuelle de poste de travail ou un hôte RDS à l'aide d'Horizon Administrator. En de rares occasions, les informations dans les différentes bases de données sur une machine en état d'erreur deviennent incohérentes et il devient impossible de récupérer l'erreur à l'aide d'Horizon Administrator. Vous pouvez voir l'un des symptômes suivants :

  • L'approvisionnement échoue avec le message d'erreur La machine virtuelle avec la spécification d'entrée existe déjà.
  • La recomposition d'un pool de postes de travail échoue avec le message d'erreur Erreur de Desktop Composer : La machine virtuelle avec la spécification d'entrée existe déjà.
  • Horizon Administrator indique qu'une machine de poste de travail ou un hôte RDS est bloqué dans un état Suppression.
  • Vous ne pouvez pas supprimer un pool de postes de travail ou une batterie de serveurs automatisée.
  • Vous ne pouvez pas supprimer une machine de poste de travail ou un hôte RDS.
  • Dans l'onglet Inventaire d'Horizon Administrator, l'état d'une machine de poste de travail ou d'un hôte RDS est absent.

Lorsque des incohérences de base de données placent une machine de poste de travail ou un hôte RDS dans un état d'erreur irrécupérable ou empêchent l'aboutissement d'une tâche d'Horizon Administrator, vous pouvez utiliser la commande ViewDbChk pour résoudre les incohérences. La commande ViewDbChk a les caractéristiques suivantes :

  • ViewDbChk est automatiquement installé lorsque vous installez le Serveur standard Horizon ou le Serveur réplica Horizon. L'utilitaire n'est pas installé lorsque vous installez le serveur de sécurité Horizon.
  • ViewDbChk est une commande que vous pouvez exécuter à partir de l'invite de commande Windows ou à partir d'un script.
  • ViewDbChk prend en charge les batteries de serveurs automatisées et les pools de postes de travail automatisés de machines virtuelles complètes ainsi que les clones liés View Composer.
  • Lorsque vous souhaitez supprimer une machine, ViewDbChk effectue un contrôle de la santé sur la machine et vous demande de fournir des informations supplémentaires si la machine semble saine.
  • ViewDbChk peut supprimer des entrées LDAP erronées ou incomplètes.
  • ViewDbChk prend en charge l'entrée et la sortie utilisant les jeux de caractères I18N.
  • ViewDbChk ne supprime pas les données utilisateur. Pour une machine virtuelle de poste de travail complète, ViewDbChk supprime la machine virtuelle de l'inventaire, mais ne la supprime pas du disque. Pour une machine virtuelle de poste de travail de clone lié, ViewDbChk supprime la machine virtuelle et archive les disques utilisateur dans le dossier racine, dans le cas de banques de données VMFS, ou dans un sous-dossier nommé archiveUDD, dans le cas de banques de données vSAN et Virtual Volumes.
  • ViewDbChk ne prend pas en charge les machines de poste de travail ou les hôtes RDS non gérés dans une batterie de serveurs manuelle.

Syntaxe de ViewDbChk

ViewDbChk --findDesktop --desktopName <desktop pool or farm name> [--verbose]

ViewDbChk --enableDesktop --desktopName <desktop pool or farm name> [--verbose]

ViewDbChk --disableDesktop --desktopName <desktop pool or farm name> [--verbose]

ViewDbChk --findMachine --desktopName <desktop pool or farm name> --machineName <machine name> [--verbose]

ViewDbChk --removeMachine --machineName <machine name> [--desktopName <desktop pool or farm name>] [--force] [--noErrorCheck] [--verbose]

ViewDbChk --scanMachines [--desktopName <desktop pool or farm name>] [--limit <maximum deletes>] [--force] [--verbose]

ViewDbChk --help [--commandName] [--verbose]

Paramètres de ViewDbChk

Paramètre Description
--findDesktop Recherche un pool de postes de travail ou une batterie de serveurs.
--enableDesktop Active un pool de postes de travail ou une batterie de serveurs.
--disableDesktop Désactive un pool de postes de travail ou une batterie de serveurs.
--findMachine Recherche une machine.
--removeMachine Supprime une machine d'un pool de postes de travail ou d'une batterie de serveurs. Avant de supprimer une machine, ViewDbChk invite l'utilisateur à désactiver le pool de postes de travail ou la batterie de serveurs. Après la suppression de la machine, ViewDbChk invite l'utilisateur à réactiver le pool de postes de travail ou la batterie de serveurs.
--scanMachines Recherche des machines en état error ou cloneerror ou pour lesquelles des machines virtuelles sont manquantes, répertorie les machines virtuelles problématiques groupées par pool de postes de travail ou batterie de serveurs, et offre la possibilité de supprimer les machines. Avant de supprimer une machine, ViewDbChk invite l'utilisateur à désactiver le pool de postes de travail ou la batterie de serveurs. Après la suppression de toutes les machines en erreur d'un pool de postes de travail ou d'une batterie de serveurs, ViewDbChk invite l'utilisateur à réactiver le pool de postes de travail ou la batterie de serveurs.
--help Affiche la syntaxe de ViewDbChk.
--desktopName <nom de poste de travail> Spécifie le nom du pool de postes de travail ou de la batterie de serveurs.
--machineName <nom de machine> Spécifie le nom de la machine.
--limit <nombre maximal de suppressions> Limite le nombre de machines que ViewDbChk peut supprimer. Le niveau par défaut est 1.
--force Force la suppression de la machine sans confirmation de l'utilisateur.
--noErrorCheck Force la suppression des machines ne présentant pas d'erreur.
--verbose Active la journalisation détaillée.
Note : Tous les noms de paramètres sont sensibles à la casse.

Exemples d'utilisation de ViewDbChk

Une machine de poste de travail nommée lc-pool2-2 est dans un état d'erreur et nous ne pouvons pas la supprimer à l'aide d'Horizon Administrator. Nous utilisons ViewDbChk pour la supprimer de l'environnement Horizon 7.

C:\Program Files\VMware\VMware View\Server\tools\bin\viewdbchk.cmd --removeMachine --machineName lc-pool2-2 
Looking for desktop pool "lc-pool2" in LDAP...
   Desktop Pool Name: lc-pool2
   Desktop Pool Type: AUTO_LC_TYPE
   VM Folder: /vdi/vm/lc-pool2/
   Desktop Pool Disabled: false
   Desktop Pool Provisioning Enabled: true
Looking for machine "/vdi/vm/lc-pool2/lc-pool2-2" in vCenter...
   Connecting to vCenter "https://10.133.17.3:443/sdk". This may take some time...
Checking connectivity...
   Connecting to View Composer "https://10.133.17.3:18443". This may take some time...
The desktop pool "lc-pool2" must be disabled before proceeding. Do you want to disable the desktop pool? (yes/no):yes
Found machine "lc-pool2-2"
   VM Name: lc-pool2-2
   Creation Date: 1/25/15 1:20:26 PM PST
   MOID: vm-236
   Clone Id: b12a9ed2-8535-44ee-a9d6-6c9b5cf6f878
   VM Folder: /vdi/vm/lc-pool2/lc-pool2-2
   VM State: ERROR
Do you want to remove the desktop machine "lc-pool2-2"? (yes/no):yes
Shutting down VM "/vdi/vm/lc-pool2/lc-pool2-2"...
Archiving persistent disks...
Destroying View Composer clone "b12a9ed2-8535-44ee-a9d6-6c9b5cf6f878"...
Removing ThinApp entitlements for machine "/vdi/vm/lc-pool2/lc-pool2-2"...
Removing machine "/vdi/vm/lc-pool2/lc-pool2-2" from LDAP...
Running delete VM scripts for machine "/vdi/vm/lc-pool2/lc-pool2-2"...
Do you want to enable the desktop pool "lc-pool2"? (yes/no):yes