問題タブ [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.
c# - C#でdirectoryentryを使用してIIS6Webディレクトリプロパティを削除する方法
メタベースからディレクトリを作成するときにIISの特定のプロパティを削除したい。誰か助けてくれませんか?C#のDirectoryEntryクラスでそれをどのように行うことができますか?
c# - DirectoryEntry.Invoke のすべてのメソッド名を知っている人
DirectoryEntry.Invoke のすべてのメソッド名を知っている人
c# - ローカルグループのクエリ
自分のマシン(W2k3ドメインのVista)上のすべてのローカルグループを取得したい。
私が実行した場合:
明らかに「無効なパス」を意味する「不明なエラー」0x80005000をスローします
ただし、コンピューターのクエリ(、groupを、computerに変更)ではエラーは発生しませんが、無視されているようです(すべてのオブジェクトが返されますか?結果を十分に調べていません)。、userもエラーを発生させます。
だから私の質問は、私は正しい道を進んでいるのかということです。すべてを取得しないようにフィルターを適用する方法はありますか?もしそうなら、どこで正しい構文を見つけることができますか?
c# - ローカル ユーザーの作成
私は悪いディレクトリの日を過ごしています。:)
誰かがこれの何が悪いのか教えてもらえますか?
私がやろうとしているのは、ローカルアカウントを作成することです。このコードをそのまま試すと、samaccountname プロパティを設定しようとするとクラッシュします。
その行をコメントアウトすると、コミット時に次のようにクラッシュします。
ソースについてどう考えるべきかわかりません。W2003 ドメインの Vista を使用していますが、Active Directory グループではなく、ローカル グループを作成しようとしています。
何か案は?私はおそらく明らかな何かを見逃しました。GroupPricipal.Save メソッドを使用してユーザーを作成できるので、権限の問題ではありません。
.net - グローバル カタログを検索しています
グローバル カタログに対してクエリを実行する場合 (SDS.P を使用する予定です)、GC 全体を検索できるようにするには、開始パスをどのようにする必要がありますか?
たとえば、GC ですべてのユーザーを列挙したいとします。私の gc に 3 つのドメイン (1 つの親、2 つの子) のユーザーがいるとします。
私は ONE.TEST.COM のコンピューターを使用しています。DC=XXX,DC=yyy をハードコーディングしたくありません。実行時に判断したいと思います。
ティア!-意思
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
c# - プログラムで IIS のワイルドカード フィルターを追加するにはどうすればよいですか?
System.DirectoryServices を使用して、IIS (バージョン 5.0 および IIS 6.0) 用のワイルドカード フィルターをプログラムで追加します。
誰か考えの材料はありますか?前もって感謝します!
c# - .NET 用 ADSI ライブラリ/コントロール
.NET/C# 用の ADSI ライブラリはありますか? いくつかのタスクを実行するためのコードの断片を見つけることができましたが、包括的なものはありませんでした。
あまりカスタマイズしなくてもコードにドロップして実行できるライブラリを探していますか? 私はMEMM for Excelの線に沿って何かを考えています
ありがとう。
iis - PowerShellを使用したActiveDirectoryエントリの構築は、IIS 6では機能しますが、IIS7では機能しません。
次のPowerShellの行は、IIS6がインストールされている場合に機能します。
ただし、IIS 7では、IIS 6管理互換性ロールサービスがインストールされていない限り、次のエラーがスローされます。
私の目標は、HttpCustomHeadersを変更することです。
IIS-7準拠の方法でこれを行うにはどうすればよいですか?
ありがとう
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 つの異なる「実」サーバーから計算されました。