問題タブ [adsi]

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 投票する
1 に答える
966 参照

c# - C#でdirectoryentryを使用してIIS6Webディレクトリプロパティを削除する方法

メタベースからディレクトリを作成するときにIISの特定のプロパティを削除したい。誰か助けてくれませんか?C#のDirectoryEntryクラスでそれをどのように行うことができますか?

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

c# - DirectoryEntry.Invoke のすべてのメソッド名を知っている人

DirectoryEntry.Invoke のすべてのメソッド名を知っている人

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

c# - ローカルグループのクエリ

自分のマシン(W2k3ドメインのVista)上のすべてのローカルグループを取得したい。

私が実行した場合:

明らかに「無効なパス」を意味する「不明なエラー」0x80005000をスローします

ただし、コンピューターのクエリ(、groupを、computerに変更)ではエラーは発生しませんが、無視されているようです(すべてのオブジェクトが返されますか?結果を十分に調べていません)。、userもエラーを発生させます。

だから私の質問は、私は正しい道を進んでいるのかということです。すべてを取得しないようにフィルターを適用する方法はありますか?もしそうなら、どこで正しい構文を見つけることができますか?

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

c# - ローカル ユーザーの作成

私は悪いディレクトリの日を過ごしています。:)

誰かがこれの何が悪いのか教えてもらえますか?

私がやろうとしているのは、ローカルアカウントを作成することです。このコードをそのまま試すと、samaccountname プロパティを設定しようとするとクラッシュします。

その行をコメントアウトすると、コミット時に次のようにクラッシュします。

ソースについてどう考えるべきかわかりません。W2003 ドメインの Vista を使用していますが、Active Directory グループではなく、ローカル グループを作成しようとしています。

何か案は?私はおそらく明らかな何かを見逃しました。GroupPricipal.Save メソッドを使用してユーザーを作成できるので、権限の問題ではありません。

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

.net - グローバル カタログを検索しています

グローバル カタログに対してクエリを実行する場合 (SDS.P を使用する予定です)、GC 全体を検索できるようにするには、開始パスをどのようにする必要がありますか?

たとえば、GC ですべてのユーザーを列挙したいとします。私の gc に 3 つのドメイン (1 つの親、2 つの子) のユーザーがいるとします。

私は ONE.TEST.COM のコンピューターを使用しています。DC=XXX,DC=yyy をハードコーディングしたくありません。実行時に判断したいと思います。

ティア!-意思

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

c# - ActiveDirectoryユーザーの操作におけるLDAPとADSI

イントラネットを介してActiveDirectoryユーザーを管理するためのWebサービスを公開するように依頼されました。LDAPはセキュリティの脆弱性と見なされており、使用しないようにアドバイスされています。

この制約があるため、ADSIを介して次のようなDirectoryEntryオブジェクトに接続できました。

このDirectoryEntryの子をループして、ユーザーである子を取得できます。ユーザーには、次の基本的なプロパティが表示されます:UserFlags、MaxStorage、PasswordAge、PasswordExpired、LoginHours、FullName、Description、BadPasswordAttempts、LastLogin、HomeDirectory、LoginScript、Profile、HomeDirDrive、Parameters、PrimaryGroupID、Name、MinPasswordLength、MaxPasswordAge、MinPasswordAge、PasswordHistoryLength 、AutoUnlockInterval、LockoutObservationInterval、MaxBadPasswordsAllowed、objectSid。

Active Directory MMCに表示され、DirectoryEntryオブジェクトからアクセスできないユーザープロパティがいくつかあります。これには、LastName、NameSuffix、Departmentなどが含まれます。

これらの他のプロパティはすべて、IADsUser( http://msdn.microsoft.com/en-us/library/aa746340%28VS.85%29.aspx )によって公開されているものとしてmsdnに文書化されています。

1)LDAPは実際に脆弱なプロトコルですか?上記のADSI(WinNT)接続よりもそうですか?LDAPは、この目的ではかなり一般的なようです。

2)ユーザーのこれらの他のプロパティを取得/設定するにはどうすればよいですか?

TIA

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

c# - プログラムで IIS のワイルドカード フィルターを追加するにはどうすればよいですか?

System.DirectoryServices を使用して、IIS (バージョン 5.0 および IIS 6.0) 用のワイルドカード フィルターをプログラムで追加します。

誰か考えの材料はありますか?前もって感謝します!

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

c# - .NET 用 ADSI ライブラリ/コントロール

.NET/C# 用の ADSI ライブラリはありますか? いくつかのタスクを実行するためのコードの断片を見つけることができましたが、包括的なものはありませんでした。

あまりカスタマイズしなくてもコードにドロップして実行できるライブラリを探していますか? 私はMEMM for Excelの線に沿って何かを考えています

ありがとう。

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

iis - PowerShellを使用したActiveDirectoryエントリの構築は、IIS 6では機能しますが、IIS7では機能しません。

次のPowerShellの行は、IIS6がインストールされている場合に機能します。

ただし、IIS 7では、IIS 6管理互換性ロールサービスがインストールされていない限り、次のエラーがスローされます。

私の目標は、HttpCustomHeadersを変更することです。

IIS-7準拠の方法でこれを行うにはどうすればよいですか?

ありがとう

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

c# - WMI\ADSI (C#) を使用してアプリケーション プールを開始すると、再起動直後にハングする

サーバーの再起動直後に WMI または ADSI を使用して Windows サービス (C# で記述され、「自動」スタートアップに設定) からアプリケーション プールを開始すると、奇妙な状況に遭遇しました。

この問題について説明します。

次のメイン プロセスを含む大規模なアプリケーション (Windows 2003 Server SP2、IIS 6.0) を開発しています (これらのプロセスは、アプリケーションの起動時に Windows サービスの起動手順を使用して呼び出され、初期化されます)。

1) XServer1.exe、XServer2.exe - これらのプロセスはネイティブ COM-Exe サーバーであり、いくつかのロジックが含まれていますが、主に DCOM (主に .NET2COM interOp 呼び出しと純粋な COM 呼び出し) を介して他のプロセスに COM オブジェクトを提供します。たとえば、従来の ASP の「アプリケーション スコープの静的オブジェクト」(w3wp.exe) の一部は、これらのプロセス内に「存在する」COM オブジェクトです。

2) dllhost.exe - これは COM+ アプリケーションです。一部の DLL は、「状態サーバー」として機能するこのプロセスに読み込まれます (ASP.NET アウト プロセス セッション サーバーと同じ考え方ですが、従来の ASP ページ用です)。

3) 3 つの異なる IIS アプリケーション プール (appPool1\2\3 と呼びます) - ASP ページ、ASP.NET ページ、WCF サービスなどのコンテナー。これらのアプリケーション プール (w3wp) 内のコード (ネイティブ C++ COM dll および C#) .exe の) は通常、(1) & (2) で説明されているプロセスに対して DCOM 呼び出しを行います。Web ガーデンとして構成できるのは appPool1 のみです。

アプリケーションを開始/停止するために、これらの手順を制御する Windows サービス (C#) を作成しました。サービス プロセスは XWinService.exe と呼ばれます。このサービスは、次の Windows サービスに依存します (リストは最初の 4 つのサービスから始まり、継続的な試みにより、次のようなリストが作成されました...)。

W3SVC

aspnet_state

COMSysApp

DcomLaunch

winmgmt

lanmanserver

ランマンワークステーション

セクロゴン

ブラウザ

TermService

アプリケーションの停止手順の概要 (サービスによって実装されます):

1) 3 つの IIS アプリケーション プール (appPool1\2\3) をすべて停止します。これは、アプリケーションのシャットダウン時に w3wp.exe プロセスがジャンプするのを防ぐために行われます。これは、C# (system.Management.dll) の WMI で実装されます。

2) XServer1\2.exe を停止します。

3) COM+ アプリケーション (dllhost.exe) を停止します。

アプリケーションの開始手順の概要 (サービスによって実装):

1) 停止手順を実行します。これにより、時間になる前に HTTP ヒットが w3wp.exe プロセスを起動しないことが保証されます。

2) XServer1\2.exe COM-Exe サーバーの呼び出しと初期化 - w3wp.exe 呼び出しの前に初期化が必要です。オブジェクトが初期化された後でのみ、w3wp.exe はこれらのサーバーにアクセスできます。これは、.NET2COM InterOp (最終的には DCOM) によって実装されます。

3) dllhost.exe (COM+ アプリケーション) プロセスを呼び出して初期化 - これは ComAdmin Catalog API (C#) によって実装されます。

4) 3 つのアプリケーション プールを開始します。これにより、着信 HTTP ヒットが w3wp.exe プロセスを起動し、要求の処理を開始できるようになります。

これは、アプリケーション プール (WMI) の開始と停止を担当する C# コードです。このコードは、サービス プロセス (XWinService.exe) で実行されます。

 </p>

今問題:

サーバーを再起動する前に、サービスを手動で (services.msc ツールから) 開始すると、問題なく成功します。また、止めてもOKです。サービスを「自動」で開始するように設定しました。つまり、サーバー (Win2K3 SP2) が起動してサーバーを再起動したときに開始されます。サーバーが起動したとき (ログイン画面が表示されたとき)、サービスは「スタック」 (ステータス = 「開始中」) であり、決して開始されません (2 日間ハングします!)。

プロセスを分析すると、次のことが明らかになりました。

1) XWinService.exe プロセスが、問題のあるコード行 (### の上の ###) でスタックしていました。これは、プロセスを強制終了するまで 2 日間ハングしました。注意: アプリケーション プールのシャットダウン (Start 手順は Stop 手順で始まります) はハングしませんでした。

2) この「ハング」中に XWinService.exe から (DebugDiag ツールを使用して) 取得した DUMP ファイルから、待機中のスレッドを確認できます。これは、その (ネイティブ) スタック トレースです。

このスレッドは、プロセス 884 のコンポーネント (svchost.exe) を (DCOM 経由で) 呼び出しており、次のサービスを実行しています: AeLookupSvc、AudioSrv、Browser、CryptSvc、dmserver、EventSystem、helpsvc、lanmanserver、lanmanworkstation、Schedule、seclogon、SENS、ShellHWDetection 、TrkWks、winmgmt、wuauserv、WZCSVC。

ご覧のとおり、「winmgmt」サービス (WMI を担当) がこのプロセスで実行されており、私たちのサービスはそれに依存しているため、winmgmt が開始された後にサービスが開始されます (IIS W3SVC サービスも同様です)。

svchost.exe プロセス (884) がダンプされ、プロセス 2880 にアクセスするスレッド (DCOM 呼び出しが終了するのを待っている) を確認できます。これは - wmiprvse.exe (これは WMI サーバーだと思います。関連性があるかどうかはわかりません) 、しかし、このプロセスの 2 つのインスタンスがありました)。これは、スレッドのネイティブ コール スタックです (svchost.exe 内):

3)サービスを「手動」に設定して開始する(手動-サーバーにログインした後、または再起動直後に別のサーバーからリモートで開始した後)は問題ありません-何もハングしません。

4) サービスを (レジストリから!) 削除し、Windows の「スタートアップ」フォルダにバッチ ファイルを配置しました。このバッチ ファイルはサービスのコードを呼び出しますが、通常の C# 実行可能ファイルとして実行します。サーバーの再起動後も、同じ問題のあるコード行でハングします (これも... 強制終了するまで 2 日間)。

5) WMI の代わりに ADSI (System.DirectoryServices) を使用しても、同じ結果が得られました (アプリケーション プールの起動が停止しました!)。

私たちは過去 2 週間、これを掘り下げてきました...

私の質問:

==========

1) 誰かが同じ問題に遭遇しましたか?

2) ハングする理由を知っている人はいますか? 留意すべき追加のサービス依存関係はありますか?

3) この問題の解決策はありますか?

4) サービスが「自動」スタートアップに設定されている場合にのみ、再起動後にこれが発生するのはなぜですか? 手動で行うと、すべて問題ありません。

***** 小さな更新:**

VM (VMware ステーション) では、サービスが再起動後、起動するまで平均 40 分ほどハングすることがわかりました (注: 起動に失敗することはありませんが、40 分は長すぎます)。システム イベント ログに、サービスが 16 分以上ハングしたことを示すイベント ログ メッセージが記録されます (ソース: Service Control Manager、イベント ID: 7044)。

「通常の」マシン (本物の金属) では、サービス開始までの平均時間は ~55 時間です!!! ここでも、前述のようにイベント ログ エントリが記録されます。

平均値は、10 の異なる VM と 8 つの異なる「実」サーバーから計算されました。