WinRM چیست؟ معرفی WinRM و WinRS در ویندوز

Windows Remote Management که به اختصار WinRM نامیده میشود، یکی از قابلیتهای معرفیشده در ویندوز ویستا، Windows Server 2003 R2 و Windows Server 2008 است. WinRM یک سرویس مدیریت از راه دور محسوب میشود که به مدیران سیستم اجازه میدهد بدون نیاز به حضور فیزیکی در کنار سرور یا سیستم مقصد، آن را بهصورت کامل مدیریت کنند. البته باید توجه داشت که برای عملکرد صحیح، هر دو سیستم کلاینت و سرور باید WinRM را نصب و فعال کرده باشند.
به طور خیلی ساده WINRM نام فرمان جدید و گنجانده شده بر روی سرور 2008، ویندوز 7 به بالا می باشد که به افراد اجازه اجرای دستورات از راه دور و به وسیله Commandها را خواهد داد. یا به زبان دیگر WINRM نام دستور جدیدی ست که به ما اجازه خواهد داد تا بدون حضور فیزیکی بر روی یک کلاینت یا سرور و از راه دوره فرمانی را بر روی آنها اجرا کرده و نتیجه آن را بر روی کامپیوتر خود ببینیم.
آنچه قراره یاد بگیریم اینجاست!
امنیت و پورتهای WinRM
WinRM بهصورت پیشفرض از پورت ۸۰ (HTTP) استفاده میکند، اما این به معنای ارسال اطلاعات بهصورت رمزنگارینشده نیست. ارتباطات در WinRM تنها زمانی پذیرفته میشوند که دادهها با استفاده از پروتکلهای امنیتی مانند Kerberos یا Negotiate رمزنگاری شده باشند.
همچنین WinRM میتواند با HTTPS از طریق پورت ۴۴۳ نیز کار کند. این سرویس بهگونهای طراحی شده که میتواند پورت ۸۰ را با سایر سرویسها مثل IIS بهاشتراک بگذارد بدون اینکه در عملکرد آنها اختلال ایجاد شود.
در محیطهایی که از SCVMM (System Center Virtual Machine Manager) استفاده میشود، WinRM فقط از Kerberos برای احراز هویت پشتیبانی میکند و اگر این امکان نباشد، فرآیند با خطا مواجه خواهد شد. در صورت مشخصنکردن نام کاربری، از اعتبارنامههای کاربر فعلی سیستم استفاده میشود که موجب تجربهای شبیه به Single Sign-On خواهد بود.
WinRS چیست و چه کاربردی دارد؟
WinRS (Windows Remote Shell) ابزاری برای اجرای دستورات روی سیستمهای دیگر بهصورت راه دور است. عملکرد آن شبیه به ابزار PSExec از مجموعه Sysinternals است و از WinRM برای اجرای فرآیندها استفاده میکند.
بهعنوان نمونه، اگر بخواهید لیست فایلهای موجود در درایو سیستم را روی یک سیستم دیگر مشاهده کنید، میتوانید از دستور زیر استفاده کنید:
winrs -r:machinename dir
کاربرد دیگر WinRS در نصب نرمافزار بهصورت بیصدا (Silent Install) روی سیستمهای راه دور است. اگر فایل نصب MSI قبلاً روی سیستم مقصد در مسیر C:\ قرار داده شده باشد، دستور زیر آن را اجرا میکند:
winrs -r:machinename msiexec.exe /i c:\install.msi /quiet
برای مشخص کردن سیستم مقصد، میتوان از گزینههای زیر استفاده کرد:
- localhost
- نام NetBIOS
- نام کامل دامنه (FQDN)
- آدرس IP
WinRM یک قابلیت ویندوزی است که اجازه میدهد سیستمهای دیگر را از راه دور مدیریت کنید. میتوانید اسکریپت اجرا کنید، سرویسها را بررسی یا تنظیم کنید، اطلاعات سیستمی بگیرید و کلی کار مدیریتی دیگر—همه از راه دور! مبتنی بر پروتکل WS-Management هست و باید روی هر دو سیستم کلاینت و سرور فعال شود. WinRS یه ابزار خط فرمانی است که با استفاده از WinRM کار میکند. یعنی به کمک WinRS میتوانید دستورات CMD یا PowerShell رو روی یه سیستم دیگر اجرا کنید، بدون اینکه نیاز باشد مستقیم پشت آن سیستم بشینید.
📌 یه جورایی میشه گفت:
WinRM = زیرساخت ارتباط از راه دور
WinRS = ابزاری برای ارسال دستور از راه دور

روش نصب WinRM در ویندوز
WinRM بهطور مستقیم تنها به سرویس WinHttp وابسته است و به IIS نیاز ندارد. با این حال اگر IIS Admin روی سیستم نصب باشد، ممکن است در زمان راهاندازی WinRM پیامهایی مبنی بر تأخیر در بارگذاری دریافت کنید. این پیامها به دلیل ترتیب بارگذاری سرویسها هستند و نه به خاطر وابستگی واقعی WinRM به IIS.
نحوهی اجرای سرویس WinRM در نسخههای مختلف ویندوز:
Windows Server 2008 به بالا: سرویس بهصورت خودکار اجرا میشود.
Windows Vista: باید سرویس را بهصورت دستی فعال کرد.
Windows Server 2003 و Windows XP: نیاز به نصب بهروزرسانی دارند. لینک بهروزرسانی رسمی:
دانلود آپدیت WinRM برای Windows Server 2003 و XP
پیکربندی WinRM در ویندوز
برای انجام تنظیمات اولیه و سریع WinRM، دستور زیر استفاده میشود:
winrm quickconfig
یا نسخه کوتاه آن:
winrm qc
این دستور کارهای زیر را انجام میدهد:
- راهاندازی سرویس WinRM و تنظیم آن روی حالت اجرای خودکار.
- پیکربندی Listener برای دریافت و ارسال پیامهای مدیریت از طریق HTTP یا HTTPS.
- باز کردن پورتهای مربوطه در فایروال (۸۰ و ۴۴۳).
- در صورت بروز خطا در اجرای دستور فوق، احتمالاً فایروال ویندوز غیرفعال است. در این صورت میتوانید با دستورهای زیر بهصورت دستی WinRM را پیکربندی کنید.
winrm quickconfig -force
این دستور بهصورت سریع WinRM رو روی سیستم پیکربندی میکنه و حتی اگر سیستم آماده نباشه، بدون گرفتن تاییدیه از کاربر ادامه میدهد. کارهایی که این دستور انجام میدهد:
- فعالسازی سرویس WinRM
- تنظیم نوع راهاندازی سرویس به حالت خودکار
- ایجاد یک listener روی همه آدرسهای IP برای پروتکل HTTP
- باز کردن پورت 80 در فایروال ویندوز (در صورت فعال بودن فایروال)
- گزینه -force باعث میشه که مراحل نصب و پیکربندی بدون سؤال از کاربر انجام بشه (مثلاً اگر قبلاً Listener موجود بوده باشه).
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
این خط به WinRM اجازه میدهد تا درخواستهای رمزنگارینشده (unencrypted) را هم بپذیرد. بهطور پیشفرض، WinRM فقط ارتباطات رمزنگاریشده رو قبول میکند.
⚠️ توجه: فعالکردن این گزینه میتواند از نظر امنیتی خطرناک باشد، مخصوصاً در شبکههای عمومی یا ناامن.
winrm set winrm/config/service/Auth '@{Basic="true"}'
این خط احراز هویت به روش Basic را فعال میکند. در این روش، نام کاربری و رمز عبور بهصورت متنی (Base64) ارسال میشوند. استفاده از احراز هویت Basic بدون SSL (HTTPS) خیلی ناامن هست، چون اطلاعات به راحتی قابل شنود (sniff) هستند.
پیکربندی WinRM از طریق Group Policy
WinRM میتواند از طریق Group Policy در شبکه بهصورت مرکزی پیکربندی شود:
دستور gpedit را اجرا کنی و مسیر زیر را دنبال کنید:
Administrative Templates → Windows Components → Windows Remote Management > Windows Remote Shell
تست WinRM و اطمینان از عملکرد صحیح
برای مشاهده Listenerهای فعال:
winrm e winrm/config/listener
برای دریافت اطلاعات هویتی سیستم:
winrm id
برای بررسی تنظیمات:
winrm get winrm/config
برای بررسی وضعیت سرویس:
winrm get wmicimv2/Win32_Service?Name=WinRM
اجرای دستور ساده از راه دور: از راه دور دستور ipconfig رو روی Server01 اجرا میکند.
winrs -r:Server01 ipconfig
اجرای دستور با یوزرنیم و پسورد مشخص: روی درایو C سیستم مقصد لیست فایلها را نشان میدهد.
winrs -r:Server01 -u:Domain\User -p:Password "dir C:\"
با این قابلیتها، WinRM ابزاری قدرتمند برای مدیریت سیستمهای ویندوزی بهصورت راه دور است که با رعایت اصول امنیتی، سرعت و کارایی بسیار خوبی را فراهم میآورد.
اتصال به یک سیستم ریموت با PowerShell: یک شل ریموت به کامپیوتر دیگر باز میکند.
Enter-PSSession -ComputerName Server01 -Credential Administrator
اجرای دستور از راه دور روی سیستم دیگر: روی سیستم Server01 لیست پردازشها را میگیرد.
Invoke-Command -ComputerName Server01 -ScriptBlock { Get-Process }
WinRM در برابر روشهای جدیدتر مدیریت از راه دور در ویندوز
در ادامهی توضیحات مربوط به WinRM، خوب است بدانیم که با ورود نسخههای جدید ویندوز مانند Windows 10، Windows 11 و Windows Server 2025، گرچه WinRM هنوز پشتیبانی میشود، اما روشهای جدیدتری نیز برای مدیریت از راه دور ارائه شدهاند. در این بخش، یک مقایسهی ساده بین WinRM و روشهای جایگزین آن ارائه میشود.
مقایسهی WinRM با جایگزینهای جدید
ویژگی | WinRM | PowerShell over SSH | Microsoft Graph API / Azure Automation |
---|---|---|---|
پروتکل ارتباطی | HTTP / HTTPS | SSH | HTTPS (REST API) |
امنیت | متوسط (نیاز به پیکربندی امن دارد) | بسیار بالا (رمزنگاری کامل) | بسیار بالا (توکنهای امن، OAuth2) |
سیستمعاملهای پشتیبانیشده | فقط ویندوز | ویندوز، لینوکس، مک | فقط سیستمهای متصل به Azure |
مناسب برای محیطهای | سازمانی سنتی | کراس-پلتفرم، امن، مدرن | محیطهای ابری و DevOps |
نیاز به دامنه (Domain) | دارد (برای کارکرد ساده) | ندارد | ندارد |
سادگی پیکربندی | نسبتاً ساده | نیاز به نصب OpenSSH | نیاز به تنظیم در Azure |
پشتیبانی توسط ابزارهای مدیریت | گسترده (مانند Ansible، SCCM) | در حال گسترش | محدود به اکوسیستم Azure |
سرویسها و پروتکلهای جایگزین WinRM
PowerShell over SSH : مایکروسافت از نسخههای جدید PowerShell (Core/7 به بعد)، پشتیبانی از پروتکل SSH برای اتصال راه دور رو اضافه کرده. این جایگزین مدرنتر و امنتری برای WinRM ـه، مخصوصاً در محیطهای غیردامنهای (non-domain) یا لینوکسی. امنیت بهتر از Basic Auth با HTTP و قابل استفاده روی ویندوز، لینوکس، و مک و سادهتر برای محیطهای Cross-Platform . البته سرویسهای دیگری هم وجود دارد که خارج از بحث است.
نتیجهگیری
اگرچه WinRM همچنان در بسیاری از سازمانها استفاده میشود، به دلیل نیاز به پشتیبانی از اسکریپتهای قدیمی و ابزارهای موجود، اما در محیطهای جدید و امنتر (مخصوصاً غیر ویندوزی یا ابری)، استفاده از PowerShell over SSH یا Azure Management Tools توصیه میشود.
برای محیطهای ترکیبی یا مدرنتر، بهتر است از روشهایی استفاده شود که امنیت، مقیاسپذیری و پشتیبانی بینپلتفرمی بهتری ارائه میدهند.
آیا هنوز از WinRM استفاده میکنیم؟
✅ بله، WinRM هنوز هم استفاده میشود — حتی در ویندوز سرور 2025 اما در عین حال، باید بدونی که در کنار WinRM، ابزارها و روشهای جدیدتری هم اضافه شدهاند که بسته به نیاز و نوع محیط، میتونن بهتر یا ایمنتر باشن.
چرا هنوز WinRM استفاده میشه؟
سازگاری گسترده: خیلی از ابزارهای مدیریت مثل PowerShell Remoting، Ansible، SCCM، SCVMM و دیگر ابزارهای اتوماسیون هنوز هم از WinRM استفاده میکنن.
پشتیبانی بومی توسط مایکروسافت: هنوز بهصورت پیشفرض در ویندوزهای جدید وجود داره.
پیکربندی ساده در دامنههای ویندوزی (Domain Joined)
پشتیبانی از PowerShell کلاسیک: بسیاری از اسکریپتهای قدیمی همچنان به WinRM متکی هستن.
منبع: مایکروسافت
- تفاوت بافر و کش چیست؟ بررسی مفاهیم Buffer و Cache
- تفاوت ESX و ESXi چیست؟ بررسی کامل از تاریخچه تا امروز
- تفاوت OVF و OVA در VMware | تفاوتها، کاربردها و نحوهی خروجی گرفتن
- مدیریت RAM در VMware ESXi: تفاوت Reservation، Limit و Share در ماشینهای مجازی
- تفاوت Thin Client و Zero Client چیست؟ تین کلاینت در مقابل زیرو کلاینت
- 10 مشکل رایج در شبکههای کامپیوتری و روش حل مشکلات شبکه
- تفاوت ویندوز سرور و ویندوز کلاینت چیست؟ هر آنچه باید بدانید!
- تفاوت سرور و Workstation چیست؟ | تفاوت کلاینت و سرور در چیست؟
- Hot Swap، Hot Plug و Hot Add در مجازیسازی و سختافزار سرورها چیست؟