Freigeben über


801 Fehlender %ObjectType- und VmmAdminUI-Fehler in VMM

In diesem Artikel wird erläutert, wie Sie die Problembehandlung für das Fehlen von %ObjectType 801 und VmmAdminUI in der System Center Virtual Machine Manager (SCVMM)-Konsole beendet haben.

Notiz

Private Benutzer: Dieser Artikel ist nur für technische Supportmitarbeiter und IT-Experten vorgesehen. Wenn Sie hilfe zu einem Problem suchen, bitten Sie die Microsoft-Community.

Originalproduktversion: System Center 2012 Virtual Machine Manager, Microsoft System Center 2012 R2 Virtual Machine Manager, System Center 2016 Virtual Machine Manager
Ursprüngliche KB-Nummer: 2756886

Problembeschreibung

Diese 801-Fehler werden durch Kommunikationsprobleme, Datenbankbeschädigungen, gelöschte Dateien oder gleichzeitige Änderungen in Hyper-V ausgelöst.

Im Folgenden finden Sie häufige Fehler, die in der Ansicht "Aufträge " in der VMM-Konsole (Virtual Machine Manager) protokolliert werden:

  • Wenn ein 801 fehlendes Objekt vorhanden ist:

    Fehler Beschreibung Empfohlene Maßnahme
    801 VMM kann %ObjectType nicht finden; -Objekt %FriendlyName;. Stellen Sie sicher, dass das Bibliotheksobjekt gültig ist, und versuchen Sie es dann erneut.

    Zum Beispiel:

    Fehler (801)
    VMM kann die OBJEKT-ID des virtuellen Computers nicht finden.
    Empfohlene Maßnahme
    Stellen Sie sicher, dass das Bibliotheksobjekt gültig ist, und versuchen Sie es dann erneut.

    Darüber hinaus wird der folgende Fehler in einer SCVMM ETL-Ablaufverfolgung protokolliert:

    Carmine-Fehler war: LibObjectNotFound (801)

  • Sie erhalten die folgenden Fehlermeldungen, wenn ein Aktualisierungsauftrag eines virtuellen Computers (VM) fehlschlägt:

    • VMM kann das VM-Objekt nicht finden:

      Details zum VMM-Objektfehler können nicht gefunden werden.

    • VMM kann das ISO-Objekt nicht finden:

      Details zum VMM-Objektfehler können nicht gefunden werden.

    • VMM kann das VirtualHardDisk-Objekt nicht finden:

      Details zum VMM-Objektfehler

  • Sie erhalten die folgende Fehlermeldung, wenn Sie versuchen, die Eigenschaften eines virtuellen Computers mit einem Problem mit 801 zu öffnen:

    VmmAdminUI funktioniert nicht mehr

    Details zu VmmAdminUI sind nicht mehr funktionsfähig.

    Die folgenden Informationen werden angezeigt, wenn Sie Problemdetails für den Fehler anzeigen oder wenn Sie die Windows-Fehlerberichterstattung Anmeldung MSINFO32 anzeigen:

    Details zur Windows-Fehlerberichterstattung Anmeldung in MSINFO32.

    Notiz

    Wenn sich ein virtueller Computer über einen Fehler von 801 in einem fehlerhaften Zustand befindet, können Sie ihn nicht aus der Konsole löschen.

  • Sie erhalten ggf. eine Fehlermeldung der folgenden Art:

    Fehler (20413)
    VMM hat eine kritische Ausnahme festgestellt und einen Ausnahmebericht unter C:\ProgramData\VMMLogs\SCVMM erstellt.

Ursache

Dieses Problem kann auftreten, wenn VMM verwaiste Datensätze in der Datenbank enthält, die Objekte anzeigen, die nicht mehr vorhanden sind.

Lösung

Um dieses Problem zu beheben, löschen Sie die verwaisten Objekte aus der Datenbank, indem Sie die folgenden Schritte ausführen:

  1. Ermitteln Sie, ob sich der virtuelle Computer auf dem Host befindet und ob er ausgeführt oder beendet wird.

    • Wenn sich der virtuelle Computer auf dem Host befindet, aber nicht gestartet werden kann, stellen Sie sicher, dass das in der Fehlermeldung identifizierte Objekt vorhanden ist. Wenn der Fehler beispielsweise angibt, dass die virtuelle Festplatte nicht gefunden werden kann, navigieren Sie zu dem Speicherort, an dem die Festplatte gespeichert werden soll, und fahren Sie dann mit Schritt 2 fort.

    • Wenn Sie nicht wissen, wo sich die VHDX-Datei befindet und sich der virtuelle Computer in einem ausgeführten Zustand befindet, führen Get-SCVirtualMachine -VMMServer localhost -Name "<VMNAME>" Sie powerShell auf dem SCVMM-Server aus, und zeigen Sie dann den VHDX-Speicherort des virtuellen Computers in der Positionszeile an.

      • Wenn sich die VHDx-Datei nicht an diesem Speicherort befindet, liegt das Problem vor.
      • Wenn sich die VHDx an diesem Speicherort befindet und der virtuelle Computer in Hyper-V gestartet werden kann, wechseln Sie zu Schritt 2, um das Problem im VMMAdminUI zu beheben.
  2. Führen Sie die Ausführung get-scvirtualmachine <VMNAME> | Remove-scvirtualmachine -force aus, um den virtuellen Computer aus der VMM-Konsole zu entfernen.

    Notiz

    Dadurch werden die VM-Dateien nicht gelöscht.

    Wenn der virtuelle Computer aus der SCVMM-Konsole entfernt wird, klicken Sie mit der rechten Maustaste auf den Host, und klicken Sie dann auf "Virtuelle Computer aktualisieren". Oder schließen Sie die Konsole, und öffnen Sie sie erneut.

    Wenn der PowerShell-Befehl nicht funktioniert, müssen Sie den virtuellen Computer aus der SQL VirtualMachineDB-Datenbank entfernen, indem Sie ein Skript ausführen.

    Wichtig

    Sichern Sie die VMM-Datenbank, bevor Sie etwas tun.

    Um zu ermitteln, wo die SCVMM-Datenbank gehostet wird, wechseln Sie zu "Einstellungen", und klicken Sie dann auf " Allgemein". Die Datenbankverbindung wird wie folgt angezeigt:

    Details zu Datenbankverbindungsinformationen.

  3. Öffnen Sie in SQL Server Management Studio auf dem SQL-Server, auf dem die SCVMM-Datenbank gehostet wird, die SQL-Instanz. Wählen Sie im Ordner "Datenbanken" auf der linken Seite "VirtualManagerDB " (oder den Namen der Datenbank, die umbenannt wurde) aus, und stellen Sie sicher, dass der Name der Datenbank in der Dropdownliste auf der Symbolleiste aufgeführt ist. Wählen Sie "Neue Abfrage" aus, und fügen Sie dann das folgende Skript in das Abfragefeld ein:

    BEGIN TRANSACTION T1
    DECLARE custom_cursor CURSOR FOR
    SELECT ObjectId from
    dbo.tbl_WLC_VObject WHERE [Name] = 'VMName'
    DECLARE @ObjectId uniqueidentifier
    OPEN custom_cursor
    FETCH NEXT FROM custom_cursor INTO @ObjectId
    WHILE(@@fetch_status = 0)
    BEGIN
    DECLARE vdrive_cursor CURSOR FOR
    SELECT VDriveId, VHDId, ISOId from
    dbo.tbl_WLC_VDrive WHERE ParentId = @ObjectId
    DECLARE @VDriveId uniqueidentifier
    DECLARE @VHDId uniqueidentifier
    DECLARE @ISOId uniqueidentifier
    
    OPEN vdrive_cursor
    FETCH NEXT FROM vdrive_cursor INTO @VDriveId, @VHDId, @ISOId
    WHILE(@@fetch_status = 0)
    BEGIN
      DELETE FROM dbo.tbl_WLC_VDrive
             WHERE VDriveId = @VDriveId
      if(@VHDId is NOT NULL)
      BEGIN
    
       DELETE FROM dbo.tbl_WLC_VHD
       WHERE VHDId = @VHDId
       DELETE FROM dbo.tbl_WLC_PhysicalObject
       WHERE PhysicalObjectId = @VHDId
      END
      if(@ISOId is NOT NULL)
      BEGIN
    
       DELETE FROM dbo.tbl_WLC_ISO
              WHERE ISOId = @ISOId
       DELETE FROM dbo.tbl_WLC_PhysicalObject
       WHERE PhysicalObjectId = @ISOId
      END
    
         FETCH NEXT FROM vdrive_cursor INTO @VDriveId, @VHDId, @ISOId
       END
    CLOSE vdrive_cursor
    DEALLOCATE vdrive_cursor
    -----------------
    DECLARE floppy_cursor CURSOR FOR
    SELECT VFDId, vFloppyId from
    dbo.tbl_WLC_VFloppy WHERE HWProfileId = @ObjectId
    DECLARE @vFloppyId uniqueidentifier
    DECLARE @vfdId uniqueidentifier
    OPEN floppy_cursor
    FETCH NEXT FROM floppy_cursor INTO @vfdId, @vFloppyId
    WHILE(@@fetch_status = 0)
    BEGIN
          DELETE FROM dbo.tbl_WLC_VFloppy
      WHERE VFloppyId = @vFloppyId
    
      if(@vfdid is NOT NULL)
      BEGIN
       DELETE FROM dbo.tbl_WLC_VFD
       WHERE VFDId = @vfdId
       DELETE FROM dbo.tbl_WLC_PhysicalObject
       WHERE PhysicalObjectId = @vfdId
    
      END
    
         FETCH NEXT FROM floppy_cursor INTO @vfdId, @vFloppyId
       END
    CLOSE floppy_cursor
    DEALLOCATE floppy_cursor
    ----------------
    DECLARE checkpoint_cursor CURSOR FOR
    SELECT VMCheckpointId from
    dbo.tbl_WLC_VMCheckpoint WHERE VMId = @ObjectId
    DECLARE @vmCheckpointId uniqueidentifier
    OPEN checkpoint_cursor
    FETCH NEXT FROM checkpoint_cursor INTO @vmCheckpointId
     WHILE(@@fetch_status = 0)
    BEGIN
         DELETE FROM dbo.tbl_WLC_VMCheckpointRelation
     WHERE VMCheckpointId = @vmCheckpointId
    
        FETCH NEXT FROM checkpoint_cursor INTO @vmCheckpointId
       END
    CLOSE checkpoint_cursor
    DEALLOCATE checkpoint_cursor
    -------------------------
    ---------Clean checkpoint
    DELETE FROM dbo.tbl_WLC_VMCheckpoint
    WHERE VMId = @ObjectID
    
            exec [dbo].[prc_VMMigration_Delete_VMInfoAndLUNMappings] @ObjectId
            DECLARE @RefreshId uniqueidentifier
    
            DELETE FROM dbo.tbl_WLC_VAdapter
    WHERE HWProfileId = @ObjectId
    
            DELETE FROM dbo.tbl_WLC_VNetworkAdapter
    WHERE HWProfileId = @ObjectId
    
            DELETE FROM dbo.tbl_WLC_VCOMPort
    WHERE HWProfileId = @ObjectId
            DELETE FROM dbo.tbl_WLC_HWProfile
    WHERE HWProfileId = @ObjectId
            DELETE FROM dbo.tbl_WLC_VMInstance
    WHERE VMInstanceId = @ObjectId
            DELETE FROM dbo.tbl_WLC_VObject
    WHERE ObjectId = @ObjectId
        FETCH NEXT FROM custom_cursor INTO @ObjectId
      END
    CLOSE custom_cursor
    DEALLOCATE custom_cursor
    COMMIT TRANSACTION T1
    

    Die einzige Änderung, die Sie in diesem Skript vornehmen müssen, befindet sich in der vierten Zeile, in der Sie VMNAME in den Namen des virtuellen Computers ändern, den Sie entfernen möchten, und zwar weiterhin mit einfachen Anführungszeichen. Anschließend können Sie das Skript ausführen, und es gibt eine Reihe von Zeilen zurück, die wie folgt betroffen sind.

    Ändern Sie den Namen von V M in Objekt-Explorer.

    Notiz

    Dadurch werden die VM-Dateien nicht gelöscht.

  4. Kehren Sie zur SCVMM-Benutzeroberfläche zurück. Möglicherweise werden zwei Instanzen der VM angezeigt, für die Sie das SQL-Skript ausgeführt haben. Klicken Sie mit der rechten Maustaste auf den Host, und klicken Sie dann auf "Virtuelle Computer aktualisieren". Oder Sie müssen die Konsole möglicherweise schließen und erneut öffnen, um die Datenbank erneut zu lesen.

Weitere Informationen

Diese Auflösung kann auch für 801-Fehler verwendet werden, die auftreten, wenn Sie eine physische zu virtuelle Konvertierung (P2V) ausführen.