آشنایی با سرویس WinRM برای اتصال و مدیریت از راه دور در ویندوز

آشنایی با سرویس WinRM برای اتصال و مدیریت از راه دور در ویندوز

نسخه اولیه سرویس WinRM نسخه 1.1 بود که اولین بار در ویندوز ویستا و ویندوز سرور 2008 عرضه شد، هر چند بعدها  به صورت دستی برای ویندوز XP و ویندوز 2003 قابل نصب شد. نسخه جدیدتر، 2.0، در ویندوز 7 و ویندوز سرور 2008 R2 دیده شد و  نسخه نرم افزار 3.0، به صورت pre-installed در ویندوز 8 و ویندوز سرور 2012 نصب شده بود. اما نسخه ویندوز 10 را شما باید فعال کنید و به طور پیش فرض فعال نیست.

Windows Remote Management (شناخته شده به عنوان WinRM) یک سرویس مدیریت از راه دور مفید است. WinRM یک ابزار خط فرمان است که برای انجام وظایف زیر ایجاد شده است:

  •  برقرار کردن ارتباط و اتصال به صورت ریموتی با میزبان ها از طریق  کانال ها / پورت های موجود در شبکه، شامل ایستگاه های کاری، سرور ها و هر سیستم عامل دیگری که از آن پشتیبانی می کند.
  • اجرای دستورات از راه دور بر روی سیستم هایی که برای شما محلی نیستند، اما از شبکه های در دسترس هستند.
  • نظارت، مدیریت و پیکربندی سرورها، سیستم عامل ها و دستگاه های کلا ینت ها به صورت ریموتی از یک مکان دیگر.

WinRM جزء “Server” این برنامه مدیریت از راه دور است و (WinRS (Windows Remote Shell هم جزء “Client” برای سرویس WinRM است، که بر روی کامپیوتر از راه دور اجرا می شود و تلاش می کند تا سرور WinRM را از راه دور مدیریت کند.
با این حال، باید توجه داشته باشیم که هر دو رایانه باید WinRM را نصب کرده و برای آنها WinRS را برای استفاده از سیستم راه دور فعال یا enable کنیم. معمولا دستورات ریموتی از طریق WinRS روی یک سیستم راه دور که با WinRM پیکربندی شده اجرا می شود.

پورت های WinRM دو پورت 5985 HTTP و پورت 5986 HTTPS هستند. نسخه های قدیمی WinRM از HTTP روی پورت TCP 80 یا HTTPS روی TCP 443 استفاده می کردند. WinRM همچنین دارای کد کمکی است که به WinRM listener اجازه می دهد پورت 80 را با IIS یا هر برنامه دیگری که ممکن است از آن پورت استفاده کند، به اشتراک بگذارد.

WinRM با SCVMM از پروتکل Kerberos برای احراز هویت استفاده می کند و از  پروتکل NTLM پشتیبانی نمی کند. اگر هیچ اعتبار نامه ای مشخص نشده باشد، اعتبار ورود به سیستم برای تأیید اعتبار در دستگاه مقابل ریموتی مورد استفاده قرار می گیرد.

اگر به دلایلی استفاده از Portهای جدید اختصاص یافته برای محیط شما مشکل ایجاد می کند، میتوانید سیستم را برای پذیرش ترافیک در پورت HTTP و پورت 443 HTTPS با استفاده از  “Compatibility Listeners” پیکربندی کنید.

Compatibility Listenerها نمی توانند مانند دیگر Listenerها مستقیما مورد خطاب قرار گیرند، اما شما می توانید با اجرای یک دستور خاص که سرویس WinRM را تنظیم می کند اجازه دهید تا ترافیک در هر دو پورت 80 یا 443  انجام شود. مانند این:

winrm set winrm/config/service @{EnableCompatibilityHttpsListener=”true”}

یا با تنظیم و اعمال یک گروپ پالیسی این کار را انجام دهید. برای این کار باید به مسیر زیر در کنسول گروپ پالیسی بروید،

Computer Configuration > Administrative Templates > Windows Components > Windows Remote Management (WinRM) > WinRM Service

و سپس یکی از این کلید ها را بسته به نظر خودتان روی حالت “Enable” قرار دهید.

“TurnOnCompatibilityHTTPListener” (اگر می خواهید اجازه انتقال WinRM را از طریق پورت HTTP 80 بدهید)

“TurnOnCompatibilityHTTPSListener” (اگر می خواهید اجازه انتقال WinRM را از طریق پورت HTTP 443 بدهید)

 WinRS چیست

Windows Remote Shell یا (WinRS) برای اجرای یک برنامه روی یک سیستم راه دور استفاده می شود و جزء “Client” برای سرویس WinRM است. WinRS بوسیله Windows Remote Management به شما این امکان را می دهد که فرآیندهای خود را بر روی ماشین های راه دور راه اندازی کنید. به عنوان مثال، اگر می خواهید یک لیست دایرکتوری در درایو سیستم بر روی دستگاه ریموتی ایجاد کنید میتوانید با استفاده از سینتکس زیر این کار را انجام دهید:

winrs -r:machinename dir

یکی دیگر از کاربردهای WinRS می تواند هنگام نصب نرم افزار در سیستم های راه دور باشد. اگر می خواهید یک برنامه را با استفاده از یک فایل MSI بر روی یک دستگاه از راه دور نصب کنید، از روش زیر برای این کار استفاده کنید. در این سینتکس فرض شده که فایل MSI مورد نظر قبلا در مسیر C:\ folder قرار گرفته است.

winrs -r:machinename msiexec.exe /i c:\install.msi /quiet

برای تعیین نام دستگاه ریموتی خود، از ویژگی های زیر میتوانید استفاده کنید:

· Localhost

· NetBIOS name

· Fully Qualified Domain Name (FQDN)

· IP address

نصب WinRM 

اگر IIS Admin Service بر روی یک رایانه نصب شده باشد، ممکن است پیامهایی را مشاهده کنید که نشان می دهد WinRM نمی تواند قبل از Interent Information Services یا (IIS) بارگیری شود. با این حال، WinRM در واقع به IIS وابستگی ندارد: این پیام ها به این دلیل رخ میدهد که در ترتیب بار گذاری سرویس IIS قبل از سرویس HTTP شروع  شود.

WinRM نیازدارد که WinHTTP.dll ثبت یا رجستر شود. به بیان ساده تر سرویس WinRM باید به صورت(Automatic (Delayed Start تنظیم شود.

برای این کار میتوان در کنسول Services سرویس مربوطه را Start کرد.

آشنایی با سرویس WinRM برای اتصال و مدیریت از راه دور در ویندوز

یا از طریق رجستری این کار انجام داد. برای این کار وارد کنسول رجستری شده و در مسیر

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WinRM\Start

روی کلید رجستری Start  کلیک کرده و در پنجره باز شده مقدار مناسب را وارد میکنیم. که مقدارهای قابل تنظیم در این پنجره عبارت است از :

Automatic – 2
Manual  3
Disabled  4
Automatic (Delayed Start) – 2 

نکته

هنگام تغییر به Automatic (Delayed Start) یک کلید جدید به نام DelayedAutostart با مقدار 1 ایجاد می شود. برای تغییر به Automatic از Automatic (Delayed Start)،  مقدار این کلید را به 0 تغییر دهید.

آشنایی با سرویس WinRM برای اتصال و مدیریت از راه دور در ویندوز

و یا میتوانید با استفاده از خط فرمان این کار را انجام دهید برای این کار باید توجه کنید که با دسترسی ادمین این کار را انجام دهید و دیگر اینکه Startup آن در حالت Disabled نباشد. با توجه با این دو نکته با وارد کردن دستور :

net start WinRM

سرویس را استارت کنید.

تنظیم WinRM

برای تنظیم پیکربندی پیش فرض دستور زیر را در خط فرمان تایپ کنید:

winrm quickconfig (یا به اختصار, winrm qc)

دستور ‘winrm qc‘ عملیات زیر را انجام می دهد:
1. سرویس WinRM را راه اندازی می کند و نوع راه اندازی سرویس را به صورت Auto-start تنظیم می کند.
2. یک listener برای پورت هایی که پیام های پروتکل WS-Management از آن استفاده می کنند بر روی هر آدرس IP ارسال و دریافت، تنظیم می کند.
در نظر داشته باشید که :

  • Remote Desktop به طور مجزا از remote management فعال یا غیر فعال میشود. برای اینکه کسی بتواند با استفاده از Remote Desktop به یک سرور محلی وصل شود، باید اتصالات مرتبط با کامپیوتر را مجاز کنید و دسترسی را تنظیم کنید. هنگام کار با یک سرور محلی در Server Manager ، با کلیک روی لینک Enabled  یا Disabled  برای Remote Desktopمجاز یا غیرمجاز بودن ریموت زدن را میتوان تعیین کرد.
  • Remote Service Management باید به عنوان یک برنامه مجاز در Windows Firewall پیکربندی شود تا از طریق ریموتی بتوان سرویس های کامپیوتری را مدیریت کرد. در advanced firewall ، چندین رول مرتبط با مدیریت از طریق پروتکلهای Named Pipes (NP) و Call Forward Procedures (RPC)  اجازه این کار را فراهم میکنند.
  • برنامه Remote Event Log Management باید به عنوان یک برنامه مجاز در Windows Firewall پیکربندی شود تا رویدادهای یک کامپیوتر از راه دور قابل مدیریت باشد. در advanced firewall چندین رول مرتبط وجود دارد که از طریق NP و RPC مدیریت می شود.
  • برنامه Remote Volume Management هم باید به عنوان یک برنامه مجاز در Windows Firewall پیکربندی شود تا Volumesهای یک کامپیوتر به صورت ریموتی قابل مدیریت باشد. در advanced firewall، چندین رول مرتبط وجود دارد که اجازه مدیریت Virtual Disk Service و Virtual Disk Service Loader را می دهد.
  • برنامه Remote Scheduled Task Management باید به عنوان یک برنامه مجاز در فایروال ویندوز پیکربندی شود تا کارهای زمانبندی شده رایانه ای را به صورت ریموتی قابل مدیریت کند. در advanced firewall، چندین رول مربوطه وجود دارد که اجازه مدیریت کارهای زمانبندی شده را از طریق RPC می دهد. 

توجه: winrm quickconfig همچنین تنظیمات پیش فرض WinRSرا تنظیم می کند.

اگر winrm qc پیغام خطا میدهد، ممکن است فایروال غیرفعال باشد، اگر فایروال غیرفعال باشد دستور quick config با شکست مواجه خواهد شد.

پیکربندیWinRM با GroupPolicy

WinRM را می توان با Group Policies پیکربندی کرد. برای این کار باید:

1. gpedit را در خط فرمان تایپ کنید. پنجره Policy Policy Object Editor Group باز می شود.

2.در قسمت Administrative Templates و Windows Components گزینهWindowsRemoteManagement و WindowsRemoteShell GroupPolicyObjects “GPO را جستجو کنید.

توجه داشته باشید که HTTP.sys و WinHTTP از انتقال HTTP (ها) برای WS-Manپشتیبانی می کنند، نه IIS .
علاوه بر این، IIS (یا یکی دیگر از سرویسهای انتشار وب) می تواند با WS-Man همکاری داشته باشد و پورت 80 را به اشتراک بگذارد. به یاد داشته که باشید که:

WinHTTP = کلاینت

HTTP.SYS = سرور

معماری Windows Remote Management شامل اجزایی در رایانه های مشتری و سرور است.

سرویس WinRM دسترسی به داده های WMI را فراهم می کند و امکان جمع آوری رویداد را فراهم می کند.

سرویس WinRM، پیشوند URL / wsman را ذخیره می کند. برای جلوگیری از تداخل با IIS، مدیران باید اطمینان حاصل کنند که در وب سایت های محلی میزبانی شده در IIS از پیشوند URL / wsman استفاده نمی شود.