問題タブ [alternate-data-stream]

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

linux - Linuxファイルシステムに代替データストリームのようなものはありますか?

Windows NTFS には、趣味の開発プロジェクトで最近使用した "Alternate Data Streams" (ADS) と呼ばれる、優れているがほとんど使用されていない機能があります。

Mac HFS+ には、「名前付きフォーク」と呼ばれる、同様に優れているがほとんど使用されていない機能もあります。

このプロジェクトを Linux に移植することを考えていますが、Linux のファイルシステムにそのような機能があるかどうかわかりません。

0 投票する
5 に答える
24912 参照

c# - .NET を使用して NTFS 代替データ ストリームを読み取り、変更する方法

.NET を使用して「NTFS 代替データ ストリーム」を読み取り、変更するにはどうすればよいですか?

それに対するネイティブの.NETサポートはないようです。どの Win32 API を使用しますか? また、これは文書化されていないと思うので、どのように使用しますか?

0 投票する
6 に答える
16206 参照

stream - NTFS 代替データ ストリーム

今日、NTFS システムがサポートするこの奇妙な魔法を見てきました。各ファイルは複数のデータ ストリームを持つことができます。基本的に、a.txtサイズが 0b のファイルを持つことができますが、そのファイルの別のデータ ストリームに任意の数のバイトが隠されている可能性があります。これは厳密に NTFS 関連の魔法であり、これらのストリームを使用する気高い理由は見当たりません。streamsSysinternalsのユーティリティを使用して、NTFS ストリームを探すことができます。これは、基本的にこれらの厄介なファイルのすべてにthumbs.db余分なデータストリームが付属していることを示しています.

さて、Windows NT4 システムでこの魔法のような動作が見られ、ファイルへのストリームの追加、コピー、削除 (前述のユーティリティの助けを借りて) が行われました。filename:streamname構文を使用すると、既存のストリームを検出できますが、その内容を表示できず、新しいストリームを作成できません。

次のエラーが表示されます。

ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません。

例: ストリーム ユーティリティからの出力:

代替データ ストリームの内容を表示できないのはなぜですか?

「 NTFS 代替データ ストリームの使用方法」に関する Microsoft のドキュメントを見ると、これらのストリームは将来サポートされなくなると記載されていますが、これが私のオペレーティング システムに当てはまることがわかります。誰でもこれに光を当てることができますか?

0 投票する
8 に答える
3877 参照

architecture - NTFS 代替データ ストリーム - 良いアイデアか悪いアイデアか?

ファイルのアプリケーション関連のメタデータを保存したいのですが、NTFS 代替データ ストリーム (AltDS) を使用すると、このメタデータを別のデータベースではなくファイルに直接保存できます。

私はこれが良い考えだとは思わない。これはNTFSでのみ機能することは知っていますが、少なくともユーザーがファイルをNTFS以外のドライブにコピー/移動すると、Windowsから警告が表示されます(ええ、ええ、誰も警告を読みません、私は知っています)-

しかし、アプリケーションがアンインストールされても AltDS が残るため、追加のデータをファイルに保存すると非常に無駄になる可能性があります。プログラムをアンインストールした後、「レジストリクリーナー」を使用して不要なエントリをレジストリから削除し、システムの実行を高速化したのは10年前のようです(クリーナーがクリーンアップしすぎると安定性が低下します...)。

それらが合理的に何に使用できるのだろうか?Microsoft Apps を使用するために完全に残す必要がありますか? それとも、(マルウェアを除いて)どのタイプのアプリがそれらを使用できるかという共通のポリシーはありますか?

編集:私の考えが何であったかを明確にするためです。私は、自分用の小さなドキュメント管理システムを作成する初期段階にあります。ファイルを自由に移動できるようにしたいので、メタデータをファイルに保存して、ファイルを移動/名前変更/変更しても、アプリがそれらを認識できるようにします。これは、メタデータ全体または別のデータベースで動作する GUID のいずれかです。

与えられたポイントを要約すると:

長所:

  • メタデータはファイルとともに移動するため、ハッシュやファイル名でメタデータを認識する必要はありません
  • ファイル自体にデータを保存することが不可能な .txt ファイルを含め、すべてのファイル タイプで動作します

短所:

  • 将来の Windows バージョンではデフォルトのファイル システムではない可能性がある NTFS でのみ動作します。
    • 彼らがWinFSをまとめたとしても、MSがそれらを自動的に変換しないとしたら、私は驚くでしょうが
  • アプリをアンインストールしても AltDS が残る
  • プライバシーの問題
  • 壊れやすい
    • ほとんどの USB スティックは FAT32 です。多くのプライベート ファイル サーバーは Linux です。インターネットからファイルをダウンロードすると、ファイルのみが転送され、ストリームは転送されません。要するに、それらを失うのはかなり簡単です。
0 投票する
2 に答える
612 参照

encryption - 指定された代替データ ストリームを暗号化する - NTFS、XP

MSDN によると、各代替データ ストリームは暗号化された形式 (NTFS の暗号化状態) で保存される場合があります。暗号化状態を設定するために私が見つけた唯一の API 関数は、ファイルのすべてのデータ ストリームを暗号化することを示す EncryptFile() です。XP ですべてのデータ ストリームを暗号化しない方法はありますか?

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

windows-7 - 代替データ ストリームにあるアプリケーションの起動

Windows 7 では、代替データ ストリーム (たとえば、start c:\temp\application.exe:hiddenProgram.exe) にあるプログラムを起動しても機能しなくなりました。

Process Monitorで見るとアクセス結果はOKなのですが、なぜかOSがこのファイルへのアクセスをブロックしています。Vista 以前のバージョンでは、この方法が機能していました。

代替テキスト

Windows 7 を使用して起動する方法を知っている人はいますか?

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

mercurial - MercurialおよびNTFS代替データストリーム

Mercurialは(NTFSファイルシステムで)代替データストリームをどのように処理しますか?それを処理できない場合、それを処理するDCVSはありますか?

編集:アップデートでバージョンを変更すると、ADSはどうなりますか?失われた(消去された)のですか?それもバージョン管理されていますか?それはすべて無視されますか?

0 投票する
4 に答える
2685 参照

c# - Windows 7 で代替データ ストリーム (フォーク) を使用していますか?

私が取り組んでいる既存の (Web ベースの) プロジェクトは、クライアント データを使用し、クライアントの名前をファイル名として使用してレポートを保存します。残念ながら、このクライアント名はフィルタリングされなかったため、誰かがテスト目的でコロン (「workshop:alex」など) を含むクライアント名を入力しました。これにより、たまたまNTFSシステムで有効なファイル名workshop:alex.pdfが生成されます。(これは、「alex.pdf」という別のデータ ストリームを含む「workshop」という名前のファイルを作成するためです。アプリケーションはファイル名も保存していたため、同じ ADS を参照しただけなので、ファイル名を再読み込みしても問題はありませんでした。したがって、 、誰もこの問題に気づきませんでした...
しかし、最近このプロジェクトに取り組み始めたので、IIS 7 を使用して Windows 7 64 ビットに移行する必要があります。突然、これらの ADS ファイルでサイトが機能しなくなりました! 原因を突き止め、過去に失敗しなかった理由を理解するのに、それほど時間はかかりませんでした。(そして、これをチェックしなかった以前の開発者も呪いました!) しかし、なぜ Windows 7 で失敗するのか疑問に思っています... それで、誰か知っていますか?


ところで、修正があります!ファイル名がフィルタリングされるようになり、問題が解決されました。その理由が気になります。新しい Windows バージョンでこれらの問題が発生する原因は何ですか?


アプリケーションについて: これは、ローカルの IIS インストールと WIN32 クライアント アプリケーションを組み合わせたものです。基本的に、レポート ソリューションは Web アプリケーションとして開発され、以前はレポート目的で Word を使用していたデスクトップ アプリケーションが作成されました。一部のマネージャーは、デスクトップ アプリケーションが Web アプリケーションのロジックを使用して代わりにレポートを生成することをお勧めします。そして、私は認めます:それはあまり明るいアイデアではありませんでした...
その結果、すべてのユーザーが Web アプリケーションを含むシステムで IIS を実行し、同じマシン上にデスクトップ アプリケーションも持つことになります。それらが通信できるようにするために、C# で別の Web サービスが作成され、Web アプリケーションは従来の ASP でビルドされ、デスクトップ アプリケーションは Delphi でビルドされました。デスクトップ アプリケーションは、ローカル Web サービスを介してデータベースにデータを送信し、ローカル Web アプリケーションにログインして、ダウンロードするレポートを生成するように指示します...
この Coding Hell のどこで問題が発生するのかは、あまり明確ではありません。ただし、ファイル名はデスクトップ アプリケーションのデータに基づいており、コロンが含まれている場合があるため、通常のファイル名ではなく ADS が作成されることがあります。Windows 7 より前のバージョンの Windows では、これは正しく動作しているように見えました。ファイルが書き込まれ、IIS はそれらを PDF ファイルとしてデスクトップ アプリケーションにも提供します。(そこから、通常のファイル名を使用して「名前を付けて保存」できます。
このアプリケーションは Windows 7 (64 ビット) では壊れます。これは、コロンがデータに追加されたときにファイルを ADS ストリームに書き込むことができるためです。生成されたファイル名からコロンを除外していますが、この問題の考えられる原因を知りたいので、好奇心からの質問です...

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

c++ - 「自己削除」.exeが自分自身を早期に削除しないようにするにはどうすればよいですか?

system("pause")テストと個人的な概念実証のために、単純な文字列のみを出力してからシステム一時停止(文字通りC ++)を呼び出す.exeファイルがあります。

Windows XP VMでテストしている単純なPythonスクリプトがあり、混乱したときにこれらの操作を実行します。

明らかに、これらのコマンドはすべてコマンドラインで単独で正常に機能しますが、Pythonを介して呼び出されたときに正常に機能しないのはなぜですか?

次のポップアップエラーメッセージが表示されます。

blank.txt:ads.exeで問題が発生したため、閉じる必要があります。ご不便をおかけしてしまい申し訳ございません。

何かの途中にいると、作業中の情報が失われる可能性があります。

ファイルも実際に削除されます。.exeがポップアップすることを期待しているときに、システムの一時停止がdeleteコマンドによって押しつぶされたようです。Enterキーを押すのを待ってから、スクリプトを続行してファイルを削除します。

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

c# - .net 4 c# 内からファイルのブロックを解除する

ac# プログラム内からインターネットからダウンロードしたファイルのブロックを解除する可能性はありますか? インターネットをサーフィンしていると、現在のゾーン情報を含む (NTFS) ファイルの代替ストリームに情報が書き込まれていることがわかりました (値 3 はインターネットからのもので、ブロックされていると解釈されます)。

ファイルのゾーン情報を消去または変更 (ブロック解除) する管理された可能性はありますか? または、ゾーン情報なしでファイルをコピーする管理されたコピー機能はありますか? そうでない場合、外部アセンブリを含めずに PInvoke を使用するにはどうすればよいですか (現在のプロジェクトではこれを行うことは許可されていません)。