راهنمای کامل مدیریت از راه دور با 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 ابزار قدرتمندی برای مدیریت از راه دور است. با درک مفاهیم کلیدی، فعال‌سازی صحیح، استفاده از نشست‌ها و پیکربندی‌های پیشرفته، مدیران می‌توانند مدیریت ایمن و کارآمدی را در محیط‌های ویندوزی پیاده‌سازی کنند.


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

مقالات مرتبط

ترفندها و نکات پیشرفته PowerShell: تکنیک‌های حرفه‌ای

PowerShell مجموعه‌ای از قابلیت‌های کوتاه، کاربردی و بسیار قدرتمند دارد که متخصصان برای نوشتن اسکریپت‌های تمیز، سریع و قابل نگهداری از آن‌ها استفاده می‌کنند. این تکنیک‌های حرفه‌ای—مثل Splatting، مقادیر پیش‌فرض پارامترها، زیرعبارت‌ها، پرانتزهای اجرایی و قالب‌بندی پیشرفته—نتیجه کار را تغییر نمی‌دهند، اما سرعت و کیفیت کار را به‌طور چشمگیری افزایش می‌دهند. این مقاله مجموعه‌ای از بهترین ترفندهای PowerShell را معرفی می‌کند که اتوماسیون را ساده‌تر و مؤثرتر می‌سازند.

ادامه

امنیت در PowerShell: اهداف، مکانیزم‌ها و سیاست اجرای اسکریپت‌ها

PowerShell از ابتدا با رویکردی «امنیت‌محور اما بی‌طرف» طراحی شده است. هدف آن جلوگیری از اجرای ناخواسته اسکریپت‌ها توسط کاربران ناآگاه است—not جلوگیری از اقدامات عمدی یا سوءاستفاده‌های دارای مجوز. PowerShell امنیت ویندوز را تقویت نمی‌کند و چیزی از آن کم نمی‌کند؛ تنها لایه‌هایی برای جلوگیری از اشتباهات رایج اضافه می‌کند. این مقاله سه لایه امنیتی PowerShell—نیاز به مسیر برای اجرای اسکریپت، عدم وابستگی پسوندها به اجرای مستقیم، و سیاست اجرای اسکریپت‌ها—را بررسی می‌کند و سپس به امضای دیجیتال، ساخت گواهی، و نحوه اعمال Execution Policy می‌پردازد.

ادامه

متغیرها، آرایه‌ها، جدول‌های درهم‌ریخته (Hash Tables) و اسکریپت‌بلوک‌ها در PowerShell

متغیرها پایه‌ای‌ترین ابزار ذخیره‌سازی داده در PowerShell هستند. آن‌ها مقادیر مختلف—عدد، رشته، اشیاء—را نگه می‌دارند و امکان استفاده مجدد از داده‌ها را بدون اجرای دوباره دستورات فراهم می‌کنند. بر اساس همین مفهوم، ساختارهای پیشرفته‌تری مانند آرایه‌ها، هش‌تیبل‌ها و اسکریپت‌بلوک‌ها ایجاد شده‌اند که قدرت PowerShell را در اتوماسیون و مدیریت داده‌ها چند برابر می‌کنند. شناخت این ساختارها برای نوشتن اسکریپت‌های تمیز، کارآمد و حرفه‌ای ضروری است.

ادامه

PSDrives و PSProviders در PowerShell: فراتر از سیستم فایل

ماژول‌ها و Snap-inها در PowerShell علاوه بر افزودن cmdletها، معمولاً شامل PSProviders نیز هستند. PSProviderها آداپتورهایی هستند که منابع داده سلسله‌مراتبی مانند رجیستری، IIS یا SQL Server را به‌صورت ساختارهای مشابه درایو در PowerShell نمایش می‌دهند. این قابلیت امکان پیمایش و مدیریت یکنواخت داده‌ها را با استفاده از دستورات آشنای سیستم فایل فراهم می‌کند. در کنار آن، PSDrives اتصالات فعال به این منابع داده هستند که با نام مشخص می‌شوند. ترکیب این دو مفهوم، مدیریت داده‌های پیچیده را ساده و یکپارچه می‌سازد.

ادامه

کار با داده‌های HTML و XML در PowerShell

PowerShell قابلیت‌های قدرتمندی برای کار با داده‌های ساختاریافته مانند HTML و XML دارد. HTML برای تولید گزارش‌های حرفه‌ای و زیبا کاربرد دارد و XML در بسیاری از بخش‌های محیط ویندوز، از فایل‌های پیکربندی تا ذخیره‌سازی داده‌ها، استفاده می‌شود. دستوراتی مانند Invoke-WebRequest، ConvertTo-HTML، Export-Clixml و Select-XML امکان دریافت، تجزیه، تولید و جستجوی این قالب‌ها را فراهم می‌کنند. با تسلط بر این ابزارها، مدیران می‌توانند گزارش‌گیری خودکار، ذخیره‌سازی داده‌های پیچیده و یکپارچه‌سازی PowerShell با سیستم‌های وب و سازمانی را انجام دهند.

ادامه

عبارات منظم در PowerShell: الگوها، عملگرها و کاربردها

عبارات منظم (Regex) زبانی قدرتمند برای توصیف الگوهای داده هستند. در PowerShell، این قابلیت با کتابخانه استاندارد .NET ادغام شده و امکان جستجو، تطبیق و جایگزینی داده‌ها را فراهم می‌کند. از بررسی ایمیل‌ها و شماره تلفن‌ها تا مسیرهای فایل و لاگ‌های سیستمی، Regex ابزار انعطاف‌پذیری برای مدیریت داده‌هاست. PowerShell علاوه بر پشتیبانی از نحو استاندارد، عملگرهایی مانند -match و دستورهایی مانند Select-String و Switch -regex را برای استفاده ساده‌تر از Regex ارائه می‌دهد.

ادامه