none
TPMのクリアをWin32_TPMのClear()で実行すると実行エラー(0x80280005)となる RRS feed

  • 質問

  • Surface pro2(Windows8.1)で、C#で作成したアプリからWin32_TPMのClearを実行して、TPMを初期化を行っていますが、エラー(0x80280005)が発生します。

    TPMの状態は有効(IsEnabled、IsActivated、IsOwnedいづれもtrue)状態です。

    TPMのClear-TPMコマンドレットの説明を見るとOwnerClearDisabledがtrueの時はClear要求は拒否されると記載がありました。

    TPMのOwnerClearDisabledをFALSEに変更する方法があれば教えてください。

    またOwnerClearDisabledの変更以外にClearをClearを正常に実行する方法があれば教えてください。

    実行デバイスのTPM情報
    PS C:\WINDOWS\system32> get-tpm
    TpmPresent : True
    TpmReady : True
    ManufacturerId : 1229346816
    ManufacturerVersion : 4.32
    ManagedAuthLevel : Full
    OwnerAuth : ya1M3kAB8UVKFRi111iM9lxE6hv8=
    OwnerClearDisabled : True
    AutoProvisioning : Enabled
    LockedOut : False
    SelfTest : {128, 0, 1, 255}

    コーディング(抜粋):

    ManagementScope scope = new ManagementScope(path, options);
    ObjectGetOptions getOptions = new ObjectGetOptions();
    
    mgTpmClass = new ManagementClass(scope, path, getOptions);
    
    //collection to store all management objects
    ManagementObjectCollection moc = mgTpmClass.GetInstances();
    // Retrieve single instance of WMI management object
    ManagementObjectCollection.ManagementObjectEnumerator moe = moc.GetEnumerator();
    moe.MoveNext();
    ManagementObject mgTpmObject = (ManagementObject)moe.Current;
    
    ManagementBaseObject inParams = mgTpmObject.GetMethodParameters("Clear");
    // Execute the method and obtain the return values.
    ManagementBaseObject outParams = mgTpmObject.InvokeMethod("Clear", inParams, null);

    2014年7月24日 2:35