801 %ObjectType と VmmAdminUI が見つからないと、VMM での作業エラーが停止しました
この記事では、System Center Virtual Machine Manager (SCVMM) コンソールで 801 が見つからない %ObjectType と VmmAdminUI が動作エラーを停止したことをトラブルシューティングする方法について説明します。
注:
ホーム ユーザー: この記事は、テクニカル サポート エージェントと IT プロフェッショナルのみを対象としています。 問題のヘルプをお探しの場合は、 Microsoft コミュニティにお問い合わせください。
元の製品バージョン: System Center 2012 Virtual Machine Manager、Microsoft System Center 2012 R2 Virtual Machine Manager、System Center 2016 Virtual Machine Manager
元の KB 番号: 2756886
現象
これらの 801 エラーは、通信の問題、データベースの破損、削除されたファイル、Hyper-V の同時変更によってトリガーされます。
仮想マシン マネージャー (VMM) コンソールの [ジョブ ] ビューに記録される一般的なエラーを次に示します。
801 が見つからないオブジェクトがある場合:
エラー 説明 推奨される操作 801 VMM で %ObjectType が見つかりません。object %FriendlyName;. ライブラリ オブジェクトが有効であることを確認してから、操作をもう一度試してください。 例:
エラー (801)
VMM で VM オブジェクト ObjectID が見つかりません。
推奨されるアクション
ライブラリ オブジェクトが有効であることを確認してから、操作をもう一度試してください。さらに、SCVMM ETL トレースには次のエラーが記録されます。
Carmine エラーが発生しました: LibObjectNotFound (801)
仮想マシン (VM) 更新ジョブが失敗すると、次のエラー メッセージが表示されます。
VMM で VM オブジェクトが見つかりません。
VMM で ISO オブジェクトが見つかりません。
VMM で VirtualHardDisk オブジェクトが見つかりません。
801 の問題がある VM のプロパティを開こうとすると、次のエラー メッセージが表示されます。
VmmAdminUI が動作を停止しました
エラーの問題の詳細を表示するとき、またはMSINFO32でWindows エラー報告 ログを表示すると、次の情報が表示されます。
注:
仮想マシンが 801 エラーによって失敗した状態になっている場合、コンソールから削除することはできません。
You may receive the following error message:
エラー (20413)
VMM で重大な例外が発生し、C:\ProgramData\VMMLogs\SCVMM に例外レポートが作成されました。
原因
この問題は、VMM にデータベース内に存在しなくなったオブジェクトを表示する孤立したレコードがある場合に発生する可能性があります。
解決方法
この問題を解決するには、次の手順に従って、孤立したオブジェクトをデータベースから削除します。
仮想マシンがホスト上に存在するかどうか、および仮想マシンが実行中か停止しているかを判断します。
VM がホスト上にあり、起動できない場合は、エラー メッセージで識別されたオブジェクトが存在することを確認します。 たとえば、エラーで仮想ハード ディスクが見つからないと表示された場合は、ハード ディスクを格納する場所に移動し、手順 2 に進みます。
VHDX ファイルがどこにあるかわからない場合、仮想マシンが実行中の状態である場合は、SCVMM サーバー上の PowerShell で実行
Get-SCVirtualMachine -VMMServer localhost -Name "<VMNAME>"
し、 場所 行で VM の VHDX の場所を表示します。- VHDx ファイルがその場所にない場合は、問題です。
- VHDx がその場所にあり、Hyper-V で VM を起動できる場合は、手順 2 に進み、VMMAdminUI の問題を解決します。
を実行
get-scvirtualmachine <VMNAME> | Remove-scvirtualmachine -force
して、VMM コンソールから VM を削除します。注:
VM ファイルは削除されません。
VM が SCVMM コンソールから削除された場合は、ホストを右クリックし、[Virtual Machinesの更新] をクリックします。 または、本体を閉じてもう一度開きます。
PowerShell コマンドが機能しない場合は、スクリプトを実行して SQL VirtualMachineDB データベースから VM を削除する必要があります。
重要
何かを行う前に、VMM データベースをバックアップします。
SCVMM データベースのホスト元を特定するには、[ 設定] に移動し、[ 全般] をクリックします。 データベース接続は次のように表示されます。
SCVMM データベースをホストする SQL サーバー上のSQL Server Management Studioで、SQL インスタンスを開きます。 左側の [データベース] フォルダーで、 VirtualManagerDB (またはデータベースの名前が変更されたもの) を選択し、データベースの名前がツール バーのドロップダウン リストに表示されていることを確認します。 [ 新しいクエリ] を選択し、次のスクリプトをクエリ フィールドに貼り付けます。
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
このスクリプトで行う必要がある唯一の変更は 4 行目です。 ここで、VMNAME を削除する VM の名前に変更しますが、引き続き単一引用符を使用します。 その後、スクリプトを実行すると、次のように影響を受ける一連の行が返されます。
注:
VM ファイルは削除されません。
SCVMM UI に戻ります。 SQL スクリプトを実行した VM のインスタンスが 2 つ表示される場合があります。 ホストを右クリックし、[更新] Virtual Machinesをクリックします。 または、コンソールを閉じてもう一度開いてデータベースを再読み込みする必要がある場合があります。
詳細情報
この解決は、物理から仮想への変換 (P2V) を実行するときに発生する 801 エラーにも使用できます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示