問題タブ [ntfs]
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.
multithreading - アクセス許可を下に流すことなく、特定のフォルダーにのみ NTFS ACL を設定する API はありますか?
私の環境では、多数のファイル サーバーで NTFS ACL 監査レポートとさまざまな ACL クリーンアップ アクティビティを実行するプロジェクトがいくつかあります。これらのアクティビティをサーバー上でローカルに実行できない主な理由は 2 つあります。
1) サーバーは実際には別の会社によって所有および管理されているため、サーバーへのローカル アクセス権がありません。
2) それらは変更された Linux OS (GuardianOS と呼ばれる) を実行するSNAP NAS サーバーであるため、ローカル アクセスを取得できたとしても、必要な操作を実行するためのツールが利用できるかどうかはわかりません。
それが邪魔にならないように、私は独自の ACL 監査レポート ツールを展開することになりました。このツールは、指定された最上位パスから始まるファイル システムを再帰的に調べ、ACL で遭遇したすべてのグループ/ユーザーに関する HTML レポートを次のように吐き出します。ツリーをたどる際のアクセス許可の変更を表示するだけでなく、このツールを開発しているときに、ネットワーク オーバーヘッドがこれらの操作を実行する際の最悪の部分であり、プロセスをマルチスレッド化することで、大幅に優れたパフォーマンスを達成できることがわかりました。
ただし、ACL の変更とクリーンアップを実行するための優れたツールを見つけるのにまだ苦労しています。すぐに使用できる標準ツール (cacls、xcacls、Explorer) はシングル スレッドのようで、ネットワーク経由でパフォーマンスが大幅に低下します。マルチスレッド化された独自の ACL 設定プログラムのローリングを見てきましたが、私がよく知っている唯一の API は .NET FileSystemAccessRule のものであり、問題は、フォルダーにアクセス許可を設定すると、自動的に「フロー」することです。権限を下げます。マルチスレッドを使用して自分で「流れる」ことをしたいので、これは問題を引き起こします。
NTFS では、継承されたアクセス許可が異なる 2 つの親フォルダー間で同じボリューム上でフォルダー/ファイルが移動され、古いアクセス許可が「継承」されているため、継承されたアクセス許可の一貫性が「許可」されていることはわかっています。
質問
1)現在のフォルダーとすべての子に適用される ACL (標準の「ファイル、フォルダー、およびサブフォルダーに適用」ACL) を設定する方法はありますが、自動的に子オブジェクトに流れないようにする方法はありますか? 基本的には、「はい、この ACL を子オブジェクトに適用する必要がありますが、今のところ、このオブジェクトに直接設定するだけです」と Windows に伝えられるようにしたいと考えています。
明確にするために、「このフォルダーのみ」に適用するための ACL オプションについて知っていますが、要件である継承を失うため、そのオプションは私のユースケースでは有効ではありません。
2) マルチスレッド方式で ACL の変更を実行するための優れたアルゴリズムまたは方法論を知っている人はいますか? 私の直感では、ファイルシステムの再帰的トラバーサルは、特に最上位フォルダーに新しい ACL を定義していて、すべてのサブフォルダーを「クリーンアップ」したい場合は特に、理論的には機能するはずです。最上位に新しい ACL をスタンプしてから、明示的な ACE を削除してから、継承されたアクセス許可を「フロー」ダウンして再帰します。
(参考までに、この質問は、実際にはシステム管理者とプログラミングの問題の両方であるため、ServerFault から部分的に複製されています。他の質問では、ネットワーク経由で高速な ACL 設定を実行できるツールを誰かが知っているかどうかを尋ねていました。)
windows - Windows で不適切なシンボリック リンクを見つけて削除する
Windows で壊れた ntfs シンボリック リンクを見つけて削除する簡単な方法はありますか? (手動検索と破棄以外)
Windowsホームサーバーがディスクを取り外さないとアップグレードできないため、私はこの混乱に陥っています:/ファイルはディスクの束にランダムに散らばっています(ただし、構造はそのままで、すべてのディスクにミラーリングされています)
windows-server-2008 - Windows Server 2008 - 複数のファイルのセキュリティ設定を一度に変更する
Windows Server 2008 で、(Windows Server 2003 のように) 複数のファイルのセキュリティ アクセス許可を一度に変更する簡単な方法はありますか? 右クリック - 複数のファイル/ディレクトリが選択されている場合 (つまり、ctrl キーを押しながら複数のファイルをクリック)、プロパティに [セキュリティ] タブが表示されません。
また、レジストリを変更する以外に、管理者としてメモ帳を開かずにメモ帳でファイルを編集する方法はありますか? そのままでは、UAC のため、管理者としてメモ帳を開いてから、編集するファイルを開く必要があります (そうしないと、保存できません)。
パート B への回答: 「ファイルの編集に関して: 通常の (管理者ではない) ユーザーにファイルへの書き込み権限を与える場合、メモ帳を管理者として実行する必要はありません。」ありがとう @Martin v. Löwis
c - ハードドライブのクラスターサイズの取得(コードによる)
CまたはC++を使用して、ユーザーのハードドライブのクラスターサイズを見つける必要があります。ハードドライブはNTFSを使用します(他のファイルシステムでもどのように実行されるかを知っていただければ幸いです)。
必要なのはwin32API呼び出しの組み合わせだと思いますが、どちらかはわかりません。
たとえば、Windowsコンソールで「fsutilfsinfo ntfsinfo c:」と入力すると、「クラスターあたりのバイト数」が表示されます。これは私が必要としているものです。(明らかな理由で、そのコマンドを実行してその出力を解析したくありません。)
php - Windows / NTFS で flock に時間がかかることがあるのはなぜですか?
ファイル システムを使用して、アプリケーション全体の永続的なシングルトンを作成します (アプリケーションはデータベースを使用しません)。ページの読み込みに 1 ~ 2 分かかることがありますが、シングルトンのインスタンスを取得する関数での flock の使用に問題を絞り込みました。これがコードの簡略化されたバージョンです:(編集:私の元の投稿のコードの最も重要な部分を省略しました)
コードは現在、XP と NTFS を使用する私の開発マシンで実行されています。
ロックは常に作成されます (つまり、trigger_error は呼び出されません)。
遅延はランダムですが、更新がヒットするとより頻繁に発生するようです.
flock を取り除くと問題は完全に解消されますが、コードが安全ではなくなります。
何かアドバイス?
アプリケーション全体の永続的なシングルトンを作成するより良い方法を知っている人はいますか?
indexing - NTFS ドライブでのインデックス作成の仕組み
コンピュータは、ファイルまたはディレクトリの MFT テーブル内の特定のエントリをどのように取得しますか? NTFS と MFT の構造を説明している多くのドキュメントを読みましたが、E:\documents\test.txt にファイルがあると言うのを理解できませんでした。MFT インデックスでそのエントリを特定するにはどうすればよいですか。シーケンシャルですか?
python - Python で NTFS ジャンクション ポイントを作成する
Python で NTFS ジャンクション ポイントを作成する方法はありますか? ユーティリティを呼び出すことができることはわかっていjunction
ますが、外部ツールに依存しない方がよいでしょう。
security - NTFSセマンティクスに関する優れた本やその他のリソースを推奨できる人はいますか?
NTFS セマンティクスの理解を深めたいと考えています。理想的には、ある種の仕様書が欲しいです。
(理論的には) 実験によって基本を理解することはできますが、重要な変数を無視する可能性は常にあります。
たとえば、次のような決定的な情報を見つけるのに苦労しています。
(1) ファイル時間 (作成/変更/アクセス) はいつ設定/更新されますか? たとえば、ファイルのコピーや移動は、これらの時間の一部またはすべてに影響しますか? ファイルがボリューム間でコピー/移動されている場合はどうなりますか? 代替ストリームはどうですか?
(2) 共有モードと読み取り/書き込みアクセスはどのように相互作用しますか?
(3) ファイルがコピーまたは移動されると、セキュリティ情報 (SACL、DACL、所有権など) はどうなりますか?
私が言ったように、おそらくコードを書くことでこれらの質問に「答える」ことができますが、それは私がテストした特定の操作がコードを実行したすべてのマシンでどのように動作するかを教えてくれるだけです. 動作に影響を与える可能性のあるすべての変数を特定して、このような動作がどのように想定されているかを教えてくれるリソースを見つけたいと思います。
ティア!
.net - マウントポイントを使用するときに、特定のNTFSパスがどのボリュームにあるかを確認するにはどうすればよいですか?
マウントポイントがたくさんあるExchangeサーバーがあります。データベースファイルへのパスを考えると、それらがどのボリュームにあるかを知る方法はありますか?問題は、それらが通常、ボリュームマウントポイントではなく、ツリーのさらに下にあることです。私はPowershellを使用しているので、できればWMIを使用するソリューションが必要ですが、任意の.NETまたはCOMオブジェクトを使用することもできます。
file - dsofile c#API/NTFSカスタムファイルのプロパティ
メタデータをファイルに追加する良い方法を探しています。dsofile.dllはNTFSで正常に機能します。FAT32共有にコピーをドロップするとメタデータが失われます(NTFSの隠しストリームを使用していると思います)。Microsoft Word文書には、失われないメタデータが含まれていますが、どのように処理しますか?FATと同様に、dsofileで作成されたすべてのメタデータ(およびWindowsエクスプローラーで手動で作成されたメタデータ)の電子メールストリップを介してファイルを送信します。個別のメタデータファイルはオプションではありません。標準のWindows技術と互換性がある必要があります。Outlookで誰かにファイルを送信し、そのファイルを返送しても、メタデータが失われることはありません。
(必要なメタデータは実際にはIDのみです)