問題タブ [dcom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6252 参照

windows - DCOM での偽装はどのように機能しますか?

OLE オートメーション マーシャラーを使用する DCOM クライアントおよびサーバー アプリケーションがあります。同じ PC で実行すると正常に動作しますが、サーバーが同じドメインにない別の PC にある場合、E_ACCESSDENIED (0x80070005) が発生します。

サーバー PC は dcomcnfg で構成され、クライアントで指定したログインとパスワードを持つユーザーに、任意の DCOM オブジェクトへのすべてのアクセスを許可します。ServerApp とそのタイプ ライブラリは、サーバー pc に登録されます。

タイプ ライブラリもクライアント PC に登録されます。ClientApp でサーバー名を直接指定するので、私が理解している限り、クライアント PC で dcomcnfg の構成は必要ありません。

サーバー名、ログイン、ドメイン、およびパスワードを指定した CreateInstanceEx() は正常に機能します。IUnknown を返すと同時に、サーバー PC で ServerApp を起動します。

しかし、サーバーがサポートするインターフェースに対して QueryInterface() を実行しようとすると、E_ACCESSDENIED が返されます。

セキュリティ イベント ログを分析すると、次の 2 つのレコードがあります。

まず、ClientApp で指定した資格情報を持つユーザーによるネットワーク ログインが成功します。これは、CreateInstanceEx() を呼び出したときに発生します。

次に、クライアント PC にログインしているユーザーによるログイン試行の失敗。2 台の PC はドメインに属していないため、このユーザーはサーバー PC に認識されません。

さて、特に私がすべてのものの QueryInterface を呼び出すとき、なぜこのユーザーがサーバーにログインするのでしょうか?

CreateInterfaceEx パラメータを調べると、ある種のなりすましメカニズムが進行しているようです。しかし、誰が誰を偽装しているかは不明です。関連する 3 つのユーザー資格情報があります。

  1. サーバー PC で ServerApp を実行するユーザー (dcomcnfg で構成)。

  2. 接続時に ClientApp が指定する資格情報を持つユーザー。

  3. クライアント PC で ClientApp を実行する資格情報を持つユーザー。

どう見ても3番が絡むと1ユーザー多すぎ。とにかく DCOM がサーバー PC で #3 を識別/偽装する場合、なぜ #2 の資格情報を指定する必要があるのですか? どこまで?

DCOM が #2 になりすますのは理にかなっているように思えます。これは、資格情報として明示的に指定したものだからです。しかし、なぜ 2 回目のログイン試行を行うのでしょうか?

偽装がどのように機能するか、またそれを無視して dcomcnfg で指定されたユーザーとして実行する方法があるかどうかを誰かが説明してもらえますか?

0 投票する
1 に答える
3722 参照

windows - 管理者以外のユーザーで DCOM コンポーネントを実行しようとしたときに、サーバーの実行に失敗しました

午後、

トピックにあるように、DCOM エージェントを使用する Web アプリケーションを実行しようとすると、このエラーが発生します。

「CLSID {82154420-0FBF-11D4-8313-005004526AB4} を持つコンポーネントの COM クラス ファクトリの取得は、次のエラーが原因で失敗しました: 80080005 サーバーの実行に失敗しました (HRESULT からの例外: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))。」

これを実行するためだけにユーザーを作成しましたが、実行できません。

dcomcnfg.exe の「ID」と AppPool の実行中のユーザーを管理者に変更すると、すぐに機能しますが、カスタムメイドのユーザーでは機能しません。

トラブルシューティングの目的で、ユーザーを管理者グループに追加しましたが、それでも実行されません。

ちなみに、コンポーネントは OpenOffice 3.3 で、QuickStart なしでインストールされ、Active-X サポートがあり、.ODT を .PDF に変換しようとしています。

どんな助けでも大いに感謝します。

よろしくLP

0 投票する
1 に答える
2990 参照

wcf - CLSID {XXXX}を持つコンポーネントのCOMクラスファクトリの取得は、次のエラーのために失敗しました:80040154

IIS7.5がインストールされている32ビットのWindows7オペレーティングシステムを実行しています。

Visual Studio 2010で、WCFサービスをホストするWebサイトプロジェクトを含むソリューションを開きます。IISで、Webサイトプロジェクトを指すアプリケーションを作成しました。Webサイトのbinフォルダーには、参照する必要のある多くのアセンブリがあります。ただし、これらのアセンブリは、同じコンピューター上で.NET4を使用して構築されています。

HTTPとHTTPSの両方を使用してWCFサービスを参照できます。

ただし、(WCFコントラクトのプロキシクラスを使用して)テストWindowsアプリケーションからサービスにアクセスすると、問題のエラーが発生します。以前はすべてが問題なく機能していました。

誰でも問題を解決するのを手伝うことができますか?この問題を調査する方法は?

0 投票する
1 に答える
1081 参照

c# - WMI が ManagementObjectCollection で完全な結果セットを返さないのはなぜですか?

C# .net を使用して WMI クエリを実行する

クエリが複数回実行されたときに、時間範囲内で常に同じイベントが返されず、例外が発生しない理由についてのアイデアはありますか?

実際のコードでは、クエリは毎回異なる時間範囲を取得するように変更されますが、それがないと不完全な結果が表示されます。

これを実行するたびに、ManagementObjectCollectionから返されsearcher.Get()たリストが正常に列挙されます - 例外は発生しませんが、コレクションは常に同じではありません。

コレクションは毎回異なる順序で並べられる場合がありますが、これは予想されることです。コレクションには、同じ時間範囲の同じ数のイベントが含まれているとは限りません。これは予期しないことです。

コレクションは、数百回のクエリごとに 1 回、完全な WMI 結果の取得に失敗しているようです。これは静かに行われ、例外やエラー メッセージはまだ見つかっていません。

一部のログ ファイル タイプ (少なくともセキュリティは注目に値します)では、「論理」演算子<=<時間に対する演算子が期待どおりに動作しないことを特定したため、両端で包括的 <= を使用して重複する終了時点に対処する必要があります。

上記の失われた結果の問題は、論理演算子が == である時間を含めなかったことが原因ではありません。

0 投票する
1 に答える
236 参照

php - php .com 拡張子を介して Internet Explorer を使用する - なぜそんなに時間がかかるのですか?

.COM スクリプトを実行しようとするたびに、このメッセージが表示されます。

致命的なエラー: 3 行目の D:\wamp\www\php\page.php で最大実行時間が 30 秒を超えました

.NET がコンピューターにインストールされている

PHP コード:

致命的なエラー: 3 行目の D:\wamp\www\php\page.php で最大実行時間が 30 秒を超えました

.NET がコンピューターにインストールされています。

0 投票する
3 に答える
2647 参照

c++ - QueryInterfaceがE_ACCESSDENIEDで失敗する

次の方法は、DCOMサーバーの方法です。COMクライアントとサーバーは異なるWinXPマシンで実行されています。COMクライアントは、RegisterClientメソッドを呼び出してコールバックインターフェイスを登録します。問題は、QueryInterfaceメソッドがエラーコードで失敗することですE_ACCESSDENIED。問題の理由は何でしょうか?

0 投票する
0 に答える
951 参照

javascript - 変数は、JScript でサポートされていない Automation タイプを使用しています

私は単純なASPページを持っています:

「MyComponent」は、次の定義を持つ DCOM オブジェクトです。

GetVresion 関数の実行中に、「Microsoft JScript ランタイム エラー: 変数は、JScript でサポートされていないオートメーション タイプを使用しています」というエラーが表示されます。どうすれば修正できますか?

0 投票する
2 に答える
3103 参照

batch-file - バッチ ファイルを使用した DCOM セキュリティ

バッチ ファイルを使用して COM セキュリティのアクセス許可を変更する方法はありますか? バッチ スクリプトを使用して、"アクセス許可" と "起動およびアクティブ化許可" の両方で、"制限の編集..." と "デフォルトの編集..." に新しい値を書き込む必要があります。Service Pack 2 および 3 を適用した Windows XP マシンを使用しています。

ありがとうございました。

0 投票する
1 に答える
2091 参照

batch-file - jinterop を使用してリモートのバッチ ファイルを呼び出す方法

GlassFish Application Server は、スクリプト asadmin.bat を使用して、JVM を開始します。

リモート マシンで Java から jinterop と DCOM を使用してこのスクリプトを呼び出したいと思います。この特定の使用法に関するヘルプが見つかりません。どんな助けでも大歓迎です。

0 投票する
1 に答える
2506 参照

asp.net - Windows Server 2008 64 ビットで実行すると ASP.NET アプリケーション エラーが発生する

Win Server 2003 32 ビットで実行されているこのアプリケーションを Win server 2008 64 ビット環境に移行するときに、ASP.NET アプリケーションが Excel ファイルをインポートできません。このバグを修正するには?Win Server 2003 32 ビットでは正常に動作するためです。

表示されるエラー レポート: *Sy​​stem.Runtime.InteropServices.COMException (0x800A03EC): HRESULT からの例外: Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password、Object WriteResPassword、Object IgnoreReadOnlyRecommended、Object Origin、Object Delimiter、Object Editable、Object Notify、Object Converter、Object AddToMru、Object Local、Object CorruptLoad) (C:\inetpub\wwwroot\ERMApproval\Administrator\ の Admin_ImportRisk.CreateTempTable()) ImportRisk.aspx.vb: 66 行目。*

私のアプリケーションの 66 行目のコードは次のとおりです: oBooks.Open(Server.MapPath("~/App_Data/Risk.xls"))

私はいくつかのシナリオを試しました:

  1. ネットワーク サービス ユーザーを DCOM 構成の Microsoft Excel アプリケーションに追加し、以前は同じだったアプリケーション プールの ID を設定しました。

  2. DCOM 構成のセキュリティで、すべての種類のユーザーを Microsoft Excel アプリケーションとマイ コンピュータに追加しました。また、アプリケーションのフォルダーにも多くの種類のユーザーを追加しました。

  3. corflags.exe を使用して、32 ビット アプリケーションを強制的に 64 ビット環境で実行する

  4. regsvr32.exe を使用して、Microsoft.Office.Interop.Excel.dll ファイルを Windows 32 ビット コンポーネント サービスに登録しました。

  5. rundll32.exe を使用して、32 ビット環境で 32 ビットの Microsoft.Office.Interop.Excel.dll ファイルを実行しました。

しかし、結果は同じです。お役に立てれば大変光栄です^^。よろしく、 -イマヌエル-