ターミナルサービスの設定をプログラムで変更しようとしています。tsuserex.dllを使用する必要があることを学びました。C#であるため、tsuserexをtlbimpで実行し、TSUSEREXLib.dllを作成して、regasmに登録しました。私はそれを機能させ、コンセプトの教授としてそれを使ってフレームワークプログラムを書きました。しかし、今日、プログラムを実行するときにいくつかの変更を加えた後、エラーが発生します
タイプ「System.__ComObject」のCOMオブジェクトをインターフェースタイプ「TSUSEREXLib.IADsTSUserEx」にキャストできません。IID'{C4930E79-2989-4462-8A60-2FCF2F2955EF}'のインターフェイスのCOMコンポーネントに対するQueryInterface呼び出しが、次のエラーのために失敗したため、この操作は失敗しました:そのようなインターフェイスはサポートされていません(HRESULTからの例外:0x80004002(E_NOINTERFACE)) 。
それは行の例外をどうやって
IADsTSUserEx iad = (IADsTSUserEx)((DirectoryEntry)user.GetUnderlyingObject()).NativeObject;
この正確な線は、テストプロジェクトで正常に機能しました。ユーザーが有効なUserPrincipalであることはわかっていますが、Googleは通常、dllを再登録するだけでよいことがわかりましたが、アンロードしてリロードした後でも機能しません。dllが機能しなくなる原因となるものがありません。