Mit dem Befehl ViewDbChk können Sie Inkonsistenzen in Datenbanken beheben, die Informationen über virtuelle Desktop-Maschinen in einem automatisierten Desktop-Pool und über RDS-Hosts in einer automatisierten Farm speichern.

In einer Horizon 7-Umgebung werden Informationen über virtuelle Desktop-Maschinen und RDS-Hosts in einer automatisierten Farm an folgenden Stellen gespeichert:

  • In der LDAP-Datenbank
  • In der vCenter Server-Datenbank
  • Nur für View Composer-Linked-Clone-Maschinen: in der View Composer-Datenbank

Normalerweise ist die Wiederherstellung nach einem Fehler während des Provisionings oder anderen Vorgängen möglich, indem Sie eine Desktop-VM oder einen RDS-Host mithilfe von Horizon Administrator entfernen oder zurücksetzen. In seltenen Fällen können die Informationen zu einer Maschine mit einem Fehlerstatus in den unterschiedlichen Datenbanken inkonsistent werden, weshalb die Wiederherstellung nach dem Fehler mithilfe von Horizon Administrator nicht möglich ist. Eines der folgenden Symptome kann auftreten:

  • Die Bereitstellung schlägt mit der folgenden Fehlermeldung fehl: Virtual machine with Input Specification already exists (Es ist bereits eine virtuelle Maschine mit Eingabespezifikation vorhanden).
  • Die Neuzusammenstellung eines Desktop-Pools schlägt mit der folgenden Fehlermeldung fehl: Desktop Composer Fault: Virtual Machine with Input Specification already exists (Desktop Composer-Fehler: Es ist bereits eine virtuelle Maschine mit Eingabespezifikation vorhanden).
  • Horizon Administrator zeigt an, dass eine Desktop-Maschine oder ein RDS-Host im Status „Wird gelöscht“ blockiert ist.
  • Sie können einen Desktop-Pool oder eine automatisierte Farm nicht löschen.
  • Sie können eine Desktop-Maschine oder einen RDS-Host nicht löschen.
  • Auf der Registerkarte „Bestandsliste“ von Horizon Administrator fehlt der Status einer Desktop-Maschine oder eines RDS-Hosts.

In Situationen, in denen Datenbankinkonsistenzen zu einem nicht behebbaren Fehlerstatus für eine Desktop-Maschine oder einen RDS-Host führen oder die erfolgreiche Ausführung einer Horizon Administrator-Aufgabe verhindern, können Sie mit dem Befehl ViewDbChk diese Inkonsistenzen beheben. Der Befehl ViewDbChk weist die folgenden Merkmale auf:

  • ViewDbChk wird bei der Installation von Horizon-Standardserver oder Horizon-Replikatserver automatisch installiert. Dieses Dienstprogramm wird bei der Installation von Horizon-Sicherheitsserver nicht installiert.
  • ViewDbChk ist ein Befehl, den Sie an der Windows-Eingabeaufforderung oder über ein Skript ausführen können.
  • ViewDbChk unterstützt automatisierte Farmen und Desktop-Pools mit vollständigen virtuellen Maschinen sowie View Composer-Linked Clones.
  • Wenn Sie eine Maschine entfernen möchten, führt ViewDbChk eine Integritätsprüfung für die Maschine aus und fordert Sie zusätzlich zur Bestätigung auf, wenn die Maschine fehlerfrei ist.
  • ViewDbChk kann fehlerhafte oder unvollständige LDAP-Einträge löschen.
  • ViewDbChk unterstützt die Ein- und Ausgabe mithilfe von I18N-Zeichensätzen.
  • ViewDbChk entfernt keine Benutzerdaten. Für eine vollständige virtuelle Desktop-Maschine entfernt ViewDbChk die virtuelle Maschine aus der Bestandsliste, jedoch nicht auf der Festplatte. Für eine virtuelle Linked-Clone-Desktop-Maschine löscht ViewDbChk die virtuelle Maschine und archiviert die Festplatten des Benutzers bei VMFS-Datenspeichern im Root-Ordner bzw. bei vSAN- und VVOL-Datenspeichern im Unterordner „archiveUDD“.
  • ViewDbChk unterstützt keine nicht verwalteten Desktop-Maschinen oder RDS-Hosts in einer manuellen Farm.

Syntax von „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]

Parameter für „ViewDbChk“

Parameter Beschreibung
--findDesktop Ermittelt einen Desktop-Pool oder eine Farm.
--enableDesktop Aktiviert einen Desktop-Pool oder eine Farm.
--disableDesktop Deaktiviert einen Desktop-Pool oder eine Farm.
--findMachine Sucht nach einer Maschine.
--removeMachine Entfernt eine Maschine aus einem Desktop-Pool oder aus einer Farm. Vor dem Entfernen einer Maschine fordert ViewDbChk den Benutzer auf, den Desktop-Pool oder die Farm zu deaktivieren. Nach dem Entfernen der Maschine fordert ViewDbChk den Benutzer auf, den Desktop-Pool oder die Farm erneut zu aktivieren.
--scanMachines Sucht nach Maschinen, die den Status „error“ (Fehler) oder „cloneerror“ (Klonfehler) oder fehlende virtuelle Maschinen aufweisen, listet die problematischen Maschinen nach dem Desktop-Pool oder nach der Farm gruppiert auf und ermöglicht das Entfernen der Maschinen. Vor dem Entfernen einer Maschine fordert ViewDbChk den Benutzer auf, den Desktop-Pool oder die Farm zu deaktivieren. Nachdem alle fehlerhaften Maschinen in einem Desktop-Pool oder in einer Farm entfernt wurden, fordert ViewDbChk den Benutzer auf, den Desktop-Pool oder die Farm erneut zu aktivieren.
--help Zeigt die Syntax von ViewDbChk an.
--desktopName <Desktopname> Gibt den Desktop-Pool oder den Farmnamen an.
--machineName <Name der Maschine> Gibt den Namen der Maschine an.
--limit <maximale Löschvorgänge> Begrenzt die Anzahl der Maschinen, die ViewDbChk entfernen kann. Die Standardeinstellung ist 1.
--force Erzwingt das Entfernen von Maschinen ohne Benutzerbestätigung.
--noErrorCheck Erzwingt das Entfernen von fehlerfreien Maschinen.
--verbose Aktiviert die ausführliche Protokollierung.
Hinweis: Bei allen Parameternamen wird die Groß-/Kleinschreibung beachtet.

Beispiel für die Verwendung von „ViewDbChk“

Die Desktop-Maschine „lc-pool2-2“ weist einen Fehlerstatus auf und kann nicht mithilfe von Horizon Administrator entfernt werden. Mithilfe von „ViewDbChk“ kann die Maschine aus der Horizon 7-Umgebung entfernt werden.

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