WSPSEARCH(1) User Commands WSPSEARCH(1)

wspsearch - اجرای جستجوهای پروتکل Windows Search روی یک سرور SMB

wspsearch {//server/share} [--limit=results] [--search=phrase] [--kind=KIND] [--query=QUERY] [-?|--help] [--usage] [-d|--debuglevel=DEBUGLEVEL] [--debug-stdout] [-s|--configfile=CONFIGFILE] [--option=name=value] [-l|--log-basename=LOGFILEBASE] [--leak-report] [--leak-report-full] [-R|--name-resolve=NAME-RESOLVE-ORDER] [-O|--socket-options=SOCKETOPTIONS] [-m|--max-protocol=MAXPROTOCOL] [-n|--netbiosname=NETBIOSNAME] [--netbios-scope=SCOPE] [-W|--workgroup=WORKGROUP] [--realm=REALM] [-U|--user=[DOMAIN/]USERNAME[%PASSWORD]] [-N|--no-pass] [--password=STRING] [--pw-nt-hash] [-A|--authentication-file=FILE] [-P|--machine-pass] [--simple-bind-dn=DN] [--use-kerberos=desired|required|off] [--use-krb5-ccache=CCACHE] [--use-winbind-ccache] [--client-protection=sign|encrypt|off]

این ابزار بخشی از مجموعهٔ samba(1) است.

دستور wspsearch یک ابزار ساده برای اجرای جستجوهای پروتکل Windows Search روی یک سرور SMB است که سرویس WSP روی آن فعال شده باشد.

server

نام سرور SMB یا نشانی IP آن برای اتصال.

sharename

نام یک اشتراک (share) روی سرور.

--query

یک پرس‌وجوی مشخص‌شده در ساختار ساده‌شدهٔ شبیه به AQS (نحو پیشرفتهٔ پرس‌وجو یا Advanced Query Syntax).

نحو پایهٔ (AQS) پشتیبانی می‌شود (بخش SEE ALSO را ببینید). یک پرس‌وجو از توالی پرس‌وجوهایی تشکیل شده است که با عملگرهای بولی AND، OR و NOT به یکدیگر متصل شده‌اند. عناصر پرس‌وجو اساساً محدودیت‌هایی هستند که توسط یک ویژگی (property) تعریف می‌شوند. محدودیت‌هایی روی عملگرهای پشتیبانی‌شده وجود دارد و برخی انواع ویژگی‌ها مانند بازه‌های شمارشی (enumerated ranges) اصلاً پشتیبانی نمی‌شوند. علاوه بر این، از نظر نحوی مقادیر بازه همانند آنچه در AQS مشخص شده محدود نمی‌شوند (بازه‌ها در عوض به‌صورت value-value مشخص می‌شوند). برخی موارد خاص که در رابط کاربری جستجوی ویندوز می‌بینید (برای نمونه اندازه‌هایی مانند 'tiny'، 'small'، 'large' و غیره) استثناهایی هستند که کم‌وبیش به عنوان کلیدواژه با آن‌ها رفتار می‌شود. بخش EXAMPLES را ببینید.

--search=phrase

یک عبارت ساده که در سراسر نمایه (index) جستجو می‌شود.

--kind=KIND

نوع (kind) یکی از موارد زیر؛
•Calendar
•Communication
•Contact
•Document
•Email
•Feed
•Folder
•Game
•InstantMessage
•Journal
•Movie
•Music
•Link
•Note
•Picture
•Program
•RecordedTV
•SearchFolder
•Task
•Video
•WebHistory

--limit

محدودیتی برای تعداد نتایج بازگردانده شده؛ به‌طور پیش‌فرض محدودیت ۵۰۰ نتیجه وجود دارد، مقدار ۰ نشان‌دهندهٔ نبود محدودیت است و همهٔ نتایج بازگردانده خواهند شد.

-?|--help

چاپ خلاصه‌ای از گزینه‌های خط فرمان.

--usage

نمایش پیام کوتاه نحوهٔ استفاده.

-d|--debuglevel=level

level عددی صحیح بین ۰ تا ۱۰ است. مقدار پیش‌فرض در صورت مشخص نشدن این پارامتر، برای برنامه‌های کلاینت ۱ است.

هرچه این مقدار بیشتر باشد، جزئیات بیشتری از فعالیت‌های سرور در فایل‌های گزارش ثبت می‌شود. در سطح ۰، تنها خطاهای بحرانی و هشدارهای جدی ثبت خواهند شد. سطح ۱ سطحی معقول برای استفادهٔ روزمره است - مقدار کمی اطلاعات دربارهٔ عملیات‌های انجام‌شده تولید می‌کند.

سطوح بالاتر از ۱ حجم قابل توجهی از داده‌های گزارش را تولید می‌کنند و تنها باید هنگام بررسی یک مشکل استفاده شوند. سطوح بالاتر از ۳ فقط برای استفاده توسط توسعه‌دهندگان طراحی شده‌اند و حجم عظیمی از داده‌های گزارش تولید می‌کنند که بیشتر آن‌ها به‌شدت مبهم و ناخوانا هستند.

توجه داشته باشید که مشخص کردن این پارامتر در اینجا، پارامتر log level را در فایل /etc/samba/smb.conf بازنویسی خواهد کرد.

--debug-stdout

این گزینه خروجی اشکال‌زدایی (debug) را به STDOUT هدایت می‌کند. به‌طور پیش‌فرض، همهٔ کلاینت‌ها گزارش‌ها را در STDERR ثبت می‌کنند.

--configfile=<configuration file>;

فایل مشخص‌شده حاوی جزئیات پیکربندی مورد نیاز کلاینت است. اطلاعات موجود در این فایل می‌تواند برای کلاینت و سرور عمومی باشد، یا تنها گزینه‌های خاص کلاینت مانند client smb encrypt را فراهم کند. برای اطلاعات بیشتر /etc/samba/smb.conf را ببینید. نام فایل پیکربندی پیش‌فرض در زمان کامپایل تعیین می‌شود.

--option=<name>=<value>

تنظیم گزینهٔ «<name>» در smb.conf(5) به مقدار «<value>» از طریق خط فرمان. این کار پیش‌فرض‌های زمان کامپایل و گزینه‌های خوانده‌شده از فایل پیکربندی را بازنویسی می‌کند. اگر یک نام یا مقدار شامل فاصله است، کل عبارت --option=name=value را داخل علامت نقل‌قول قرار دهید.

-l|--log-basename=logdirectory

نام دایرکتوری پایه برای فایل‌های گزارش/اشکال‌زدایی. پسوند ".progname" پیوست خواهد شد (برای مثال log.smbclient، log.smbd و غیره). فایل گزارش هرگز توسط کلاینت حذف نمی‌شود. --leak-report
فعال کردن گزارش نشت حافظهٔ talloc هنگام خروج.

--leak-report-full

فعال کردن گزارش کامل نشت حافظهٔ talloc هنگام خروج.

-V|--version

شماره نسخه برنامه را چاپ می‌کند.

-U|--user=[DOMAIN\]USERNAME[%PASSWORD]

نام کاربری یا نام کاربری و گذرواژهٔ SMB را تنظیم می‌کند.

اگر %PASSWORD مشخص نشود، از کاربر خواسته می‌شود آن را وارد کند. کلاینت ابتدا متغیر محیطی USER را بررسی می‌کند (که مجاز است همچنین شامل گذرواژه‌ای باشد که با % جدا شده است)، سپس متغیر LOGNAME (که مجاز به داشتن گذرواژه نیست) و در صورت وجود هر یک، مقدار آن استفاده می‌شود. اگر این متغیرهای محیطی یافت نشوند، ممکن است نام کاربری یافت‌شده در حافظهٔ موقت اعتبارسنجی Kerberos استفاده شود.

گزینه سوم استفاده از یک فایل اعتبارسنجی است که حاوی متن خام نام کاربری و گذرواژه است. این گزینه عمدتاً برای اسکریپت‌هایی فراهم شده است که مدیر سیستم مایل نیست اطلاعات اعتبارسنجی را در خط فرمان یا از طریق متغیرهای محیطی ارسال کند. در صورت استفاده از این روش، اطمینان حاصل کنید که مجوزهای دسترسی فایل، مانع دسترسی کاربران غیرمجاز شود. برای جزئیات بیشتر به -A مراجعه کنید.

در مورد قرار دادن گذرواژه‌ها در اسکریپت‌ها یا ارسال مقادیر فراهم‌شده توسط کاربر در خط فرمان محتاط باشید. از نظر امنیتی بهتر است اجازه دهید در صورت نیاز ابزار کلاینت Samba گذرواژه را درخواست کند، یا گذرواژه را یک‌بار با استفاده از kinit دریافت کنید.

اگرچه Samba تلاش می‌کند گذرواژه را از عنوان فرایند (همان‌طور که در ps دیده می‌شود) پاک کند، اما این کار پس از راه‌اندازی انجام می‌شود و بنابراین مستعد شرایط مسابقه (race condition) است.

-N|--no-pass

در صورت مشخص شدن، این پارامتر از درخواست معمول گذرواژه از طرف کلاینت به کاربر جلوگیری می‌کند. این ویژگی هنگام دسترسی به سرویسی که نیاز به گذرواژه ندارد مفید است.

مگر اینکه گذرواژه‌ای در خط فرمان مشخص شده باشد یا این پارامتر تعیین شده باشد، در غیر این صورت کلاینت درخواست گذرواژه خواهد کرد.

اگر گذرواژه‌ای در خط فرمان مشخص شده باشد و این گزینه نیز تعریف شده باشد، گذرواژهٔ خط فرمان نادیده گرفته می‌شود و هیچ گذرواژه‌ای استفاده نخواهد شد.

--password

گذرواژه را در خط فرمان مشخص می‌کند.

در مورد قرار دادن گذرواژه‌ها در اسکریپت‌ها یا ارسال مقادیر فراهم‌شده توسط کاربر در خط فرمان محتاط باشید. از نظر امنیتی بهتر است اجازه دهید در صورت نیاز ابزار کلاینت Samba گذرواژه را درخواست کند، یا گذرواژه را یک‌بار با استفاده از kinit دریافت کنید.

اگر --password مشخص نشود، این ابزار متغیر محیطی PASSWD را بررسی می‌کند و پس از آن PASSWD_FD را که انتظار می‌رود حاوی یک شماره توصیف‌گر فایل (FD) باز باشد.

در نهایت، PASSWD_FILE را بررسی می‌کند (که حاوی مسیر فایلی برای باز شدن است). فایل باید تنها حاوی گذرواژه باشد. اطمینان حاصل کنید که مجوزهای دسترسی فایل مانع دسترسی کاربران غیرمجاز شود!

اگرچه Samba تلاش می‌کند گذرواژه را از عنوان فرایند (همان‌طور که در ps دیده می‌شود) پاک کند، اما این کار پس از راه‌اندازی انجام می‌شود و بنابراین مستعد شرایط مسابقه است.

--pw-nt-hash

گذرواژهٔ ارائه‌شده یک هش NT است.

-A|--authentication-file=filename

این گزینه به شما امکان می‌دهد فایلی را مشخص کنید که نام کاربری و گذرواژهٔ استفاده‌شده در اتصال از آن خوانده شود. قالب فایل به شرح زیر است:
username = <value>
password = <value>
domain   = <value>

اطمینان حاصل کنید که مجوزهای دسترسی فایل مانع دسترسی کاربران غیرمجاز شود!

-P|--machine-pass

استفاده از گذرواژهٔ ذخیره‌شدهٔ حساب ماشین (machine account).

--simple-bind-dn=DN

نام متمایز (DN) برای استفاده در اتصال ساده (simple bind).

--use-kerberos=desired|required|off

این پارامتر تعیین می‌کند که آیا ابزارهای کلاینت Samba تلاش کنند با استفاده از Kerberos احراز هویت انجام دهند یا خیر. برای احراز هویت Kerberos هنگام اتصال به یک سرویس، باید به جای آدرس‌های IP از نام‌های DNS استفاده کنید. به‌طور پیش‌فرض ابزارهای کلاینت Samba تلاش می‌کنند از حافظهٔ موقت اعتبارسنجی پیش‌فرض Kerberos (ccache) استفاده کنند. در صورتی که ccache وجود نداشته باشد یا گزینهٔ -U|--user مشخص شده باشد، کلاینت‌ها درخواست ورود گذرواژه را خواهند داد و یک بلیط Kerberos (با kinit) برای شما دریافت می‌کنند. اگر می‌خواهید از یک حافظهٔ موقت اعتبارسنجی جایگزین برای Kerberos استفاده کنید، از گزینهٔ --use-krb5-ccache استفاده کنید.

توجه داشته باشید که مشخص کردن این پارامتر در اینجا، مقدار پارامتر client use kerberos در فایل /etc/samba/smb.conf را بازنویسی (override) خواهد کرد.

--use-krb5-ccache=CCACHE

مکان حافظهٔ موقت اعتبارسنجی (credential cache) را برای احراز هویت Kerberos مشخص می‌کند.

این گزینه --use-kerberos=required را تحمیل خواهد کرد.

--use-winbind-ccache

تلاش برای استفاده از حافظهٔ موقت اعتبارسنجی winbind.

--client-protection=sign|encrypt|off

سطح حفاظت اتصال را که ابزار کلاینت باید استفاده کند تنظیم می‌کند.

توجه داشته باشید که مشخص کردن این پارامتر در اینجا، مقدار پارامتر client protection در فایل /etc/samba/smb.conf را بازنویسی (override) خواهد کرد.

در صورتی که به کنترل دقیق‌تری نیاز دارید می‌توانید از موارد زیر استفاده کنید: --option=clientsmbencrypt=OPTION, --option=clientipcsigning=OPTION, --option=clientsigning=OPTION.

جستجو با استفاده از یک عبارت ساده:

'wspsearch -Usomeuser%password //server/share --phrase="cats"'

جستجو با استفاده از پرس‌وجویی شبیه به AQS برای تصویری که نام آن با p403 یا p404 آغاز می‌شود:

'wspsearch -Usomeuser%password //server/share --query="ALL:$<p403 OR ALL:$<p404 AND System.Kind:picture"'

سینتکس پرس‌وجوی پیشرفته (Advanced Query Syntax) https://learn.microsoft.com/en-gb/windows/win32/search/-search-3x-advancedquerysyntax

این صفحهٔ راهنما بخشی از نسخهٔ 4.24.6 مجموعهٔ نرم‌افزاری Samba است.

نرم‌افزار اصلی Samba و ابزارهای مرتبط با آن توسط Andrew Tridgell ساخته شده‌اند. Samba اکنون توسط Samba Team به‌عنوان یک پروژهٔ متن‌باز، مشابه شیوهٔ توسعهٔ هستهٔ Linux توسعه می‌یابد.

صفحهٔ راهنمای wspsearch توسط Noel Power نوشته شده است.

08/16/2026 Samba 4.24.6