راهنمای کامل مدیریت از راه دور با PowerShell Remoting

PowerShell Remoting که در نسخه 2 معرفی و در نسخه 3 بهبود یافت، فناوری پایه‌ای برای مدیریت از راه دور در محیط‌های ویندوز است. این قابلیت امکان اجرای دستورات روی ماشین‌های راه دور را به‌صورت امن از طریق پروتکل WS-MAN و سرویس WinRM فراهم می‌کند. برخلاف پارامترهای قدیمی -ComputerName که از DCOM/RPC استفاده می‌کردند، Remoting واقعی با هر cmdlet کار می‌کند و اشیاء را به XML سریالایز کرده و سپس در مقصد دوباره بازسازی می‌کند. درک مفاهیم کلیدی، نحوه فعال‌سازی، استفاده پایه‌ای، مدیریت نشست‌ها (PSSessions)، پیکربندی‌های پیشرفته و سناریوهای امنیتی برای بهره‌برداری کامل از این فناوری ضروری است.

PowerShell RemotingWinRM و WS-MANPSSessionsEndpoints و ListenersCredSSP و Second-Hop ProblemImplicit Remoting

~2 دقیقه مطالعه • بروزرسانی ۳۰ آذر ۱۴۰۴

1. مفاهیم کلیدی


  • WS-MAN: پروتکل مبتنی بر HTTP (پورت‌های 5985 و 5986).
  • WinRM: سرویس مدیریت ارتباط و احراز هویت.
  • Endpoints: پیکربندی‌های از پیش تعریف‌شده مانند Microsoft.PowerShell.
  • Listeners: پذیرش ترافیک روی پورت‌ها و IPها.
  • Authentication: پیش‌فرض Kerberos؛ پشتیبانی از CredSSP، Basic و غیره.
  • Security: استفاده از یک پورت، بدون ارسال رمز عبور، با سهمیه‌های قابل‌تنظیم.

2. فعال‌سازی Remoting


با اجرای Enable-PSRemoting -Force به‌عنوان Administrator:


  • راه‌اندازی سرویس WinRM.
  • ایجاد Listener روی پورت 5985.
  • افزودن استثناهای فایروال.
  • ایجاد Endpoints پیش‌فرض.

3. استفاده پایه‌ای


  • ارتباط 1 به 1: Enter-PSSession -ComputerName Server01.
  • ارتباط 1 به چند: Invoke-Command -ComputerName Server01,Server02 -ScriptBlock { Get-Process }.
  • پشتیبانی از گزینه‌هایی مانند -Credential، -Port، -UseSSL.

4. نشست‌های پایدار (PSSessions)


  • New-PSSession برای ایجاد نشست.
  • Invoke-Command -Session برای اجرای دستورات.
  • Enter-PSSession برای ورود تعاملی.
  • Remove-PSSession برای حذف نشست.

ویژگی‌های نسخه 3: Disconnect، Connect و Receive-PSSession.


5. پیکربندی‌های پیشرفته


  • ایجاد Endpoints محدود با New-PSSessionConfigurationFile.
  • ثبت پیکربندی با Register-PSSessionConfiguration.
  • Delegation برای اجرای دستورات با اعتبارنامه‌های دیگر.

6. مشکل Second-Hop و CredSSP


به‌طور پیش‌فرض اعتبارنامه‌ها فقط در اولین اتصال معتبرند. راهکار: استفاده از -Credential در هر مرحله یا فعال‌سازی CredSSP.


7. Listeners در WinRM


پیش‌فرض: HTTP روی همه IPها. امکان ایجاد Listener سفارشی با HTTPS:


New-WSManInstance winrm/config/Listener -SelectorSet @{Transport='HTTPS'; Address='*'}

8. Remoting ضمنی (Implicit Remoting)


  • Import-PSSession برای وارد کردن ماژول‌های راه دور.
  • Export-PSSession برای ذخیره و استفاده پایدار.

9. سناریوهای دیگر


  • ارتباط بین دامنه‌ها با TrustedHosts.
  • تنظیم سهمیه‌ها در WSMan:\localhost\Shell.
  • مدیریت از طریق Group Policy در محیط‌های سازمانی.

نتیجه‌گیری


PowerShell Remoting ابزار قدرتمندی برای مدیریت از راه دور است. با درک مفاهیم کلیدی، فعال‌سازی صحیح، استفاده از نشست‌ها و پیکربندی‌های پیشرفته، مدیران می‌توانند مدیریت ایمن و کارآمدی را در محیط‌های ویندوزی پیاده‌سازی کنند.


نوشته و پژوهش شده توسط دکتر شاهین صیامی