ممکنه خیلی براتون پیش اومده باشه که از یه windows desktop به عنوان workstation برای اتصال به سرورها استفاده کرده باشید و به مشکل نبودن قابلیت چند session همزمان در ویندوز دسکتاپ برخورد کرده باشید. خب همه ما می‌دونیم که اگه توی ویندوز سرور باشیم به صورت پیش‌فرض تا ۲ کاربر همزمان رو می‌تونیم داشته باشیم و با فعال کردن Remote Desktop Services می‌تونیم بسته به لایسنس تهیه شده یوزرهای بیشتری رو به صورت remote به طور همزمان داشته باشیم.

حالا اگه بخوایم در windows desktop این قابلیت رو فعال و استفاده کنیم باید چیکار کنیم؟

پروژه RDP Wrapper Library نوشته شده توسط Stas'M برای این منظور ایجاد شده. هدف این پروژه فعال کردن ویژگی Remote Desktop Host و concurrent RDP sessions در windowsهای desktop است.

توضیحات:

RDP Wrapper به عنوان یه لایه بین Service Control Manager و Terminal Services کار میکنه پس فایل termsrv.dll به صورت دست نخورده (original) باقی می‌مونه. همچنین این متد در مقابل آپدیتهای ویندوز خیلی مقاوم طراحی شده است.

نکات مهم:

اکیداً توصیه شده فایل termsrv.dll به صورت دست نخورده باشه. اگه شما از پچ‌های مختلفی برای دستکاری این فایل و فعالسازی این قابلیت استفاده کردید ممکنه این راهکار برای شما بدون ثبات و همراه با کرش‌های سیستم در هر لحظه باشه.

اطلاعاتی درباره این پروژه:

  • سورس پروژه در دسترس همه مردم دنیا هستش پس شما می‌تونید ویرایش و کامپایل خودتون رو داشته باشید
  • RDP Wrapper فایل termsrv.dll رو ویرایش نمیکنه و فقط Terminal Service رو با پارامترهایی غیر از پارامترهای پیش‌فرض اجرا میکنه.
  • از RDPWInst و RDPChecker می‌توان بدون داشتن باقی فولدرها و فایلهای batch استفاده کرد
  • RDPWInst میتونه بدون نصب هم استفاده بشه و مشکلی از بابت این مورد نداره
  • یه خبر بد از Windows 2000 و XP و ویندوزهای سرور (Server 2003) نتونستیم پشتیبانی کنیم

ویژگی‌های کلیدی:

  • RDP host server در همه نسخه‌های ویندوز دسکتاپ از ویندوز ویستا به بعد بدون مشکل تست شده و کار میکنه
  • دسترسی Console و Remote میتونه به صورت همزمان باشه و این مورد پشتیبانی شده
  • پشتیبانی از ورود یک کاربر هم به صورت local و هم به صورت remote (به تنظیمات اپلیکیشن مراجعه شود)
  • پشتیبانی از ۱۵ تا ۱۸ کاربر همزمان (این مورد به نسخه سیستم‌عامل و سخت‌افزار شما وابستگی شدیدی داره)
  • پشتیبانی از پنهان‌سازی Console و Remote Session (با استفاده از Task Manager در ویندوز ۷ و Remote Desktop Connection در ویندوز ۸ و بالاتر)
  • پشتیبانی کامل از Multi-monitor در Remote Sessionها
  • و اگه شما یه ویژگی پیدا کردید که توی این لیست نبود ما رو خبر کنید :)

محیط کامپایل فایلهای باینری:

  • نسخه x86 نوشته شده با زبان Delphi، کامپایل و ساخته شده با Embarcadero RAD Studio 2010
  • نسخه x86/x64 نوسته شده با زبان ++C، کامپایل و ساخته شده با Microsoft Visual Studio 2013

پیوندها

ریپازیتوری رسمی در گیت‌هاب

https://github.com/stascorp/rdpwrap

بحث‌ها و نظرات فعال:

http://web.archive.org/web/20150810054558/http://andrewblock.net/enable-remote-desktop-on-windows-8-core

پروژه MDL و اپلیکیشن:

http://forums.mydigitallife.info/threads/55935-RDP-Wrapper-Library-(works-with-Windows-8-1-Basic)

یسری ایده راجع به پورت کردن به ARM برای استفاده در Windows RT:

http://forum.xda-developers.com/showthread.php?t=2093525&page=3

اضافه کردن گروه Remote Desktop Users در ویندوز ۷

http://superuser.com/questions/680572

دانلود نسخه باینری

https://github.com/stascorp/rdpwrap/releases

نصب و راه‌اندازی

بعد از دانلود فایل  RDPWrap-v1.6.2.zip اون رو از حالت فشرده خارج کنید و روی فایل install.bat راست کلیک کنید و با ادمین اجراش کنید:

منتظر بشید کار اسکریپت نصب تموم بشه بعد از اتمام اون فایل RDPConf رو با ادمین باز کنید:

و در پنجره باز شده تنظیم Authentication Mode رو بر روی NLA بذارید و اگه پیکربندی خاصی مدنظر داشتید اعمال کتید در نهایت Apply و OK کنید.

Single session per user

یکی از پیکربندی‌های جالب Single session per user هستش که اگه شما این تیک رو بردارید و OK کنید می‌تونید با یک User چند Session فعال (ریموت و کنسول) داشته باشید:

از فایل RDPCheck.exe هم می‌تونید مثل من برای چک کردن اتصال ریموت و تست پیکربندی‌ها استفاده کنید.

لایسنس

پروژه جزو پروژه‌های متن باز هستش و لایسنس اون Apache-2.0 تعریف شده متن رسمی این لایسنس رو می‌تونید از طریق لینک زیر مطالعه کنید:

https://www.apache.org/licenses/LICENSE-2.0