Hostwinds مدونة

نتائج البحث عن:


Windows NTFS تدفقات صورة مميزة

Windows NTFS تدفقات

بواسطة: Karlito Bonnevie  /  مايو 24, 2022


منذ عام 1995 ، Microsoft Windows NTFS وقد دعم نظام الملفات التدفقات.في الواقع ، جميع ملفات NTFS هي في الواقع تدفقات.ما نعتقده عادة كملف في NTFS يسمى بدقة دفق بيانات افتراضي.دفق البيانات الافتراضي لم يكشف عن اسمه.ما هو دفق البيانات الذي لم يكشف عن اسمه؟النظر في NTFS تنسيق اسم الملف المؤهل تماما:

file-name:stream-name:stream-type

من اليسار إلى اليمين ، لدينا:

  • اسم الملف: اسم "الملف" (أي دفق البيانات الافتراضي).
  • تيار: اسم أي تدفقات بيانات بديلة (مسماة) متصلة بـ اسم الملف (يمكن أن يكون للملف تدفقات متعددة).
  • دفق نوع: بالنسبة لأي دفق ، يشير إلى نوعه ، حيث تكون بيانات $ الأكثر شيوعًا.يمكن أن يحتوي دفق بيانات النوع $ على أي شيء يمكن أن يحتوي عليه ملف عادي.للحصول على قائمة بأنواع الدفق الممكنة ، انظر أنواع الدفق.

مثال يتبع:

myTextFile.txt

هذا هو دفق بيانات افتراضي.كما ذكرنا ، فإن تدفقات البيانات الافتراضية لم يتم اسمها.يمكن ملاحظة ذلك في شكل اسم الملف المؤهل بالكامل:

myTextFile.txt::$DATA

حقيقة أنه لا يوجد شيء بين الكولون (: :) يشير إلى أن هذا دفق بيانات لم يكشف عن اسمه.لدفق البيانات الافتراضي ، لا نحتاج إلى استخدام اسم الملف المؤهل بالكامل ، على الرغم من أننا نستطيع ذلك.على سبيل المثال ، من موجه أوامر Windows ، يفتح الأمران التاليان نفس دفق البيانات الافتراضي:

notepad myTextFile.txt
notepad myTextFile.txt::$DATA

لتبسيط الأشياء ، سنستخدم مصطلح "ملف" بدلاً من "دفق البيانات الافتراضي" الأكثر دقة.

يمكنك إنشاء دفق مسمى في ملف باستخدام NTFs العادية اتفاقيات تسمية.على سبيل المثال ، من موجه الأوامر ، قم بتشغيل ما يلي:

notepad foo.docx:bar.txt

تحديد نعم عندما سئل عما إذا كنت تريد إنشاء ملف جديد.بعد ذلك ، اكتب المحتوى التالي:

This is the named stream "bar.txt" that is in (attached to) the file "foo.docx".

حفظ والخروج من المفكرة.

عندما تقوم بتشغيل أمر DIR ، سترى ملفًا يدعى foo.docx الذي يكون حجمه ، المثير للاهتمام ، هو 0 بايت.ومع ذلك ، عند تشغيل أمر DIR /R ، سترى دفق البيانات المسماة الذي أنشأته للتو ، ويبلغ حجمه 80 بايت:

هذان أحجام الدفقان منطقيين في هذا الدفق ، لا يوجد لدى DOCX محتوى أثناء دفق foo.docx: bar.txt لديه 80 بايت من المحتوى.للمساعدة في توضيح ذلك ، أضف بعض المحتوى إلى دفق البيانات الافتراضي ، على النحو التالي:

notepad foo.docx

أدخل النص التالي:

This is the default data stream (file) named "foo.docx", which has one named data stream attached to it, called "bar.txt".

حفظ والخروج من المفكرة.

قم بتشغيل dir /r مرة أخرى ولاحظ أن دفق البيانات الافتراضي foo.docx يحتوي الآن على 120 بايت من البيانات:

ولهذا السبب ، يمكننا أن نقول أن الجداول تستهلك 200 بايت على مستوى الصوت.ومع ذلك ، فإن تشغيل أمر DIR غير المقلوب يوفر معلومات مضللة إلى حد ما - وهذا يعني أن foo.docx يحتوي فقط على 120 بايت من البيانات ، وهو أمر غير دقيق بمعنى أنه عند حذف foo.docx ، فإنك ستصدر فعليًا 200 بايت مرة أخرى إلىحجم المساحة الحرة المتاحة:

del foo.docx
dir /r

الأخلاقية من القصة ، ربما ، هي استخدام مفتاح /r دائمًا.الذي يطرح السؤال ، كيف تجد جميع الملفات التي تحتوي على تدفقات "مخفية"؟تمت مناقشة هذا الموضوع بعد ذلك.

باستخدام PowerShell للعثور على تدفقات

إذا سمحنا لمصطلح "ملف" يعني "دفق البيانات الافتراضي" و "دفق" يعني "دفق البيانات المسماة" ، فيمكننا استخدام PowerShell للعثور على جميع الملفات التي تحتوي على تدفقات على النحو التالي.

افتح موجه أوامر PowerShell وقم بتوزيع الأمر اختياريًا (هذا القمع الذي ربما يتم رفض الوصول إلى الملفات المزعجة التي تم رفضها):

$ErrorActionPreference = "SilentlyContinue"

بعد ذلك ، قم بتشغيل الأوامر التالية:

Get-ChildItem -Path \ -Recurse | Get-Item -Stream * | Where-Object Stream -ne ':$DATA' | Convert-Path

بالنسبة إلى مستوى الصوت الحالي ، فإن هذا يعيد قائمة بجميع الملفات التي تحتوي على تدفقات واحدة أو أكثر.يتم شرح خط أنابيب PowerShell على النحو التالي:

  • Get -Childitem -Path \ -Recurse
    بدءًا من دليل الجذر (المجلد) ، يحصل على جميع الملفات على مستوى الصوت.
  • Get -item -stream *
    يحصل على جميع تدفقات البيانات المرتبطة بملف.سيتم إرجاع الملفات (تدفقات البيانات التي لم تكشف عن اسمها) ": $ data" كقيمة لخاصية الدفق.ستعيد التدفقات (تدفقات البيانات المسماة) اسم الدفق كقيمة لخاصية الدفق (و ": لن يتم إرجاع بيانات $).
  • حيث الدفق -دفق -ne ': $ data'
    يزيل جميع الملفات التي تكون خاصية الدفق الخاصة بها ": $ data" ، وبالتالي ترك الملفات التي تحتوي فقط على تدفقات واحدة أو أكثر.
  • تحويل المسار
    يخرج مسارات الملف المنسقة بشكل جيد.

باستخدام PowerShell لحذف التدفقات

من موجه أوامر PowerShell ، يمكنك إزالة bar.txt دفق من ملف foo.docx على النحو التالي:

Remove-Item -Path .\foo.docx -Stream bar.txt

إذا كان اسم الدفق يحتوي على مسافات ، فيجب عليك استخدام عروض الأسعار ، كما في:

Remove-Item -Path ".\Bob's Grandfather.png" -Stream "Image Info.txt"

باستخدام التدفقات

كانت القصد الأصلي لتدفقات NTFS هو تمكين قابلية التشغيل المتداخل لملف Apple Macintosh ولكن يمكن أن تكون تدفقات NTFS مفيدة للغاية.على سبيل المثال ، قد ترغب في "تضمين" معلومات مفصلة ضمن ملفات الصور العائلية:

إذا تمت تسمية ملف الصورة أعلاه "Grandfather.png" ، فيمكنك إضافة دفق (باستخدام PowerShell) يحتوي على معلومات صورة مفصلة ، على النحو التالي:

Set-Content -Path ".\Bob's Grandfather.png" -Stream "image-info.txt" -Value "This is Bob's grandfather (on his mother's side) in the Gold Rush Bar and Restaurant in Seattle, WA - circa 1856."

لعرض بيانات تعريف الصورة التي قمت بتعيينها للتو ، قم بتشغيلها:

Get-Content -Path ".\Bob's Grandfather.png" -Stream "image-info.txt"

لاحظ أن الوسيطة -stream تتطلب أن تعرف الاسم الدقيق للتيار (لا يُسمح بالأحرف البرية).أذكر أنه يمكنك دائمًا الحصول على أسماء دفق باستخدام Get-Intem (الذي يقبل أحرف البرية):

Get-Item -Path '.\Bob''s Grandfather.png' -Stream *

للحصول على اسم الدفق المطلوب ، انظر إلى خاصية الدفق في الإخراج الناتج:

يمكن أن تشمل الاستخدامات الأخرى لتيارات NTFS:

  • تخزين الكلمات الرئيسية المتعلقة بملف.
  • توفير معلومات موجزة لملف.
  • ربط الخطوط و/أو الأصوات مع ملف.
  • إلى حد كبير أي بيانات تعريف ملف يمكنك التفكير فيها.

أخيرًا ، ربما لاحظت أن مستوى الصوت الخاص بك يحتوي على عدد من التدفقات المسماة Zone.Inderifier.يتم استخدام هذه التدفقات عمومًا بواسطة Windows لتخزين مناطق أمان URL ، والتي تحدد ما إذا كان ينبغي الوثوق بالملف أم لا.مثال يوضح كيفية عرض محتويات المنطقة. يتبع دفق identifier:

Get-Content -Path .\sanders.net-May-2022.gz -Stream Zone.Identifier

وعبر موجه أوامر Windows:

notepad sanders.net-May-2022.gz:Zone.Identifier

نأمل أن تكون قد وجدت هذه المقالة مثيرة للاهتمام ؛وربما ستجد بعض الاستخدامات المثيرة للاهتمام لتدفقات NTFS للتمهيد.

كتب بواسطة Karlito Bonnevie  /  مايو 24, 2022