এন্টার-পিএসএসশন cmdlet আপনাকে দূরবর্তী কম্পিউটারের সাথে একটি অবিরাম ইন্টারেক্টিভ পাওয়ারশেল সেশন স্থাপন করতে দেয়। আপনি আপনার কমান্ড প্রম্পটে প্রবেশ করা সমস্ত কমান্ড দূরবর্তী কম্পিউটারে কার্যকর করা হয়। এই নিবন্ধে, আমরা Enter-PSSession-এর প্রধান বৈশিষ্ট্যগুলি ব্যাখ্যা করব এবং কীভাবে এটি Windows 10/11 এবং Windows Server 2022/2019/2016-এ চলমান কম্পিউটারগুলিকে দূরবর্তীভাবে পরিচালনা করতে ব্যবহার করা যেতে পারে।
Enter-PSSession
cmdlet PowerShell রিমোটিং দ্বারা চালিত স্ট্যাক PSRemotingম্যানেজমেন্টের জন্য ওয়েব পরিষেবাগুলি-এর উপর ভিত্তি করে (WS-ম্যানেজমেন্ট) এবং WinRM পরিষেবা (উইন্ডোজ রিমোট ম্যানেজমেন্ট)। কম্পিউটারের মধ্যে ট্রাফিক প্রোটোকল স্তরে এনক্রিপ্ট করা হয় (আপনি বিকল্পভাবে PSRemoting WinRM ট্র্যাফিকের জন্য SSL এনক্রিপশন সক্ষম করতে পারেন)। আপনি NTLM এবং Kerberos সহ বিভিন্ন প্রমাণীকরণ পদ্ধতি ব্যবহার করতে পারেন। সহজ ক্ষেত্রে. একটি দূরবর্তী কম্পিউটারের সাথে একটি ইন্টারেক্টিভ PowerShell সেশন স্থাপন করতে, আপনাকে সংযোগ করার জন্য শুধুমাত্র কম্পিউটারের নাম উল্লেখ করতে হবে (কম্পিউটার নাম বিকল্প)। একটি দূরবর্তী কম্পিউটারের সাথে সংযোগ করতে, শুধুমাত্র কমান্ডটি চালান:
Enter-PSSession hq-srv01.woshub.com
যদি বর্তমান ব্যবহারকারীর কাছে একটি দূরবর্তী হোস্টের সাথে সংযোগ করার অনুমতি থাকে, তাহলে আপনি দূরবর্তী কম্পিউটারে একটি ইন্টারেক্টিভ শেলের সাথে সংযুক্ত হবেন৷
সংযোগ করার আগে আপনি ব্যবহারকারীর শংসাপত্রের জন্য অনুরোধ করতে পারেন:
Enter-PsSession –ComputerName hq-srv01.woshub.com –Credentials woshub\maxbak
অথবা:
$creds = Get-Credential
Enter-PSSession -ComputerName hq-srv01 -Credential $creds
মনে রাখবেন যে রিমোট কম্পিউটারের নাম এখন আপনার পাওয়ারশেল প্রম্পটের শুরুতে বর্গাকার বন্ধনীতে দেখানো হয়েছে ([hq-srv01.woshub.com] ) এইভাবে আপনি স্থানীয় বা দূরবর্তী শেল সেশনে চলছে কিনা তা খুঁজে বের করতে পারেন।
দূরবর্তীভাবে চালানো সমস্ত কমান্ডের আউটপুট আপনার স্থানীয় কনসোলে প্রদর্শিত হয়। আপনি hostname
চালাতে পারেন কমান্ড করুন এবং নিশ্চিত করুন যে আপনি এটি একটি দূরবর্তী কম্পিউটারে চালাচ্ছেন৷
আপনি এই ইন্টারেক্টিভ কমান্ড প্রম্পটে যেকোনো কমান্ড চালাতে পারেন (আপনার বিশেষাধিকার অনুযায়ী)।
উদাহরণস্বরূপ, আসুন PowerShell ব্যবহার করে উইন্ডোজ নেটওয়ার্ক সেটিংস প্রদর্শন করি:
Get-NetIPConfiguration
আপনি দূরবর্তী কম্পিউটারে DNS সেটিংস পরিবর্তন করতে পারেন:
Set-DNSClientServerAddress –InterfaceIndex 6 –ServerAddresses 192.168.13.4, 192.168.100.4
একটি ইন্টারেক্টিভ রিমোট শেল সেশন থেকে প্রস্থান করতে, Exit-PSSession
চালান অথবা exit
. PS প্রম্পট স্বাভাবিক হয়ে যাবে এবং আপনি আপনার স্থানীয় PowerShell কনসোলে ফিরে যাবেন:
পূর্বে, প্রশাসকরা প্রাথমিকভাবে PsExec ব্যবহার করতেন একটি দূরবর্তী উইন্ডোজ কম্পিউটারে একটি ইন্টারেক্টিভ কমান্ড প্রম্পট চালানোর টুল। যাইহোক, যখন এন্টার-PSSession উপস্থিত হয়, তখন তাদের আর বাহ্যিক সরঞ্জামগুলি ব্যবহার করতে হবে না।
উইন্ডোজ সার্ভার 2016/2019/2022-এ, পাওয়ারশেল রিমোটিং ডিফল্টরূপে সক্রিয় থাকে (আপনি এটি সার্ভার ম্যানেজার -> লোকাল সার্ভার -> রিমোট ম্যানেজমেন্ট =সক্ষমে দেখতে পারেন)।
ডেস্কটপ উইন্ডোজ সংস্করণে (Win10, Win11), PSRemoting এবং WinRM নিষ্ক্রিয়।
আপনি নীচের কমান্ডটি ব্যবহার করে আপনার বর্তমান কম্পিউটারে PRemoting সক্ষম কিনা তা পরীক্ষা করতে পারেন:
Get-PSSessionConfiguration
এই কমান্ডটি WinRM-এর মাধ্যমে সংযোগ করার জন্য অনুমোদিত ব্যবহারকারী এবং গোষ্ঠীগুলির একটি তালিকা পেতেও ব্যবহৃত হয়। PSRemoting ব্যবহার করতে, একটি ব্যবহারকারীর অ্যাকাউন্ট অবশ্যই প্রশাসকদের সদস্য হতে হবে অথবা রিমোট ম্যানেজমেন্ট ব্যবহারকারী দল আপনি অ-প্রশাসক ব্যবহারকারীদের জন্য WinRM PowerShell রিমোটিং কীভাবে সক্ষম করবেন সে সম্পর্কে আরও জানতে পারেন৷
আপনি PowerShell রিমোটিং এর মাধ্যমে স্থানীয়ভাবে আপনার কম্পিউটারের সাথে সংযোগ করতে সক্ষম কিনা তা পরীক্ষা করতে পারেন:
Test-WSMan -ComputerName localhost
যদি কমান্ডটি একটি WSMan স্কিমা সংস্করণ প্রদান করে, তাহলে PS রিমোটিং ব্যবহার করে কম্পিউটারে দূরবর্তী সংযোগ অনুমোদিত।
যদি PowerShell রিমোটিং অক্ষম করা হয় বা কনফিগার করা না থাকে, তাহলে নিম্নলিখিত ত্রুটিটি প্রদর্শিত হবে:
Test-WSMan : <f:WSManFaultxmlns:f="https://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2150858770" Machine="srv02"><f:Message>The client cannot connect to the destination specified in the request. Verify that the service on the destination is running and is accepting requests. Consult the logs and documentation for the WS-Management service running on the destination, most commonly IIS or WinRM. If the destination is the WinRM service, run the following command on the destination to analyze and configure the WinRM service: "winrm quickconfig".
PowerShell রিমোটিং সক্ষম করতে, এই কমান্ডটি চালান:
Enable-PSRemoting -Force
এই কমান্ড:
- WinRM পরিষেবা সক্ষম করে এবং এটির স্টার্টআপ প্রকারকে স্বয়ংক্রিয়ভাবে সেট করে;
- ডিফল্ট WinRM পোর্টে একটি সংযোগ বিন্দু তৈরি করে (HTTP ট্র্যাফিকের জন্য TCP/5985);
- WS-Management-এর জন্য Windows Firewall-এ ব্যতিক্রম যোগ করে (যদি আপনি PSRemoting ম্যানুয়ালি কনফিগার করেন, তাহলে PowerShell বা GPO ব্যবহার করে একটি ফায়ারওয়াল নিয়ম যোগ করুন)
- দূরবর্তী PowerShell সেশনের অনুমতি দেয়
- WinRM পরিষেবা পুনরায় চালু করে
নিশ্চিত করুন যে WinRM পরিষেবা চলছে এবং স্বয়ংক্রিয়ভাবে শুরু হতে সেট করুন:
Get-Service WinRM | Select MachineName,Name,Status, StartType
নির্বাচন করুন
Enable-PSRemoting কমান্ড শুধুমাত্র ডোমেন এবং ব্যক্তিগত Windows নেটওয়ার্ক প্রোফাইলের জন্য কাজ করে। আপনি যদি একটি সর্বজনীন নেটওয়ার্কে একটি কম্পিউটারে PRemoting সক্ষম করতে চান, তাহলে নেটওয়ার্ক অবস্থানটি সর্বজনীন থেকে ব্যক্তিগততে পরিবর্তন করুন, অথবা নীচের কমান্ডটি ব্যবহার করুন:
Enable-PSRemoting -SkipNetworkProfileCheck -Force
একটি অ্যাক্টিভ ডিরেক্টরি ডোমেনে, সার্ভার এবং কম্পিউটারগুলিতে কেন্দ্রীয়ভাবে উইন্ডোজ রিমোট ম্যানেজমেন্ট (PSRemoting) কনফিগার করার সবচেয়ে সহজ উপায় হল গ্রুপ নীতির মাধ্যমে৷
আধুনিক PowerShell সংস্করণ (v6 বা v7) PowerShell রিমোটিং এর মাধ্যমে দূরবর্তী কম্পিউটারের সাথে সংযোগ করতে সিকিউর শেল প্রোটোকল (SSH) সমর্থন করে। একটি দূরবর্তী কম্পিউটারে একটি SSH সংযোগ বিন্দু অবশ্যই উপলব্ধ থাকতে হবে (Windows 10-এ বিল্ট-ইন OpenSSH সার্ভার কীভাবে সক্ষম করবেন?)। আপনি এই কমান্ডটি ব্যবহার করে SSH-এর মাধ্যমে একটি ইন্টারেক্টিভ PSRemoting সেশন শুরু করতে পারেন:
Enter-PSSession -HostName [email protected]
অথবা একটি RSA কী ব্যবহার করে SSH-এর মাধ্যমে প্রমাণীকরণ করুন:
Enter-PSSession -HostName [email protected]:22 -KeyFilePath c:\PS\max_rsa_key
আপনি New-PSSession এর সাথে Enter-PSSession ব্যবহার করতে পারেন :
$s = New-PSSession -ComputerName hq-srv01.woshub.com
Enter-PSSession -Session $s
Enter-PSSession বিভিন্ন প্রমাণীকরণ পদ্ধতি সমর্থন করে। আপনি -Authentication প্যারামিটার ব্যবহার করে আপনার পছন্দের একটি সেট করতে পারেন। Basic, Digest, Kerberos, CredSSP, NegotiateWithImplicitCredential, Negotiate Challenge প্রমাণীকরণ পদ্ধতি সমর্থিত।
উপরের উদাহরণে, আমরা দেখিয়েছি কিভাবে একই Windows ডোমেনে কম্পিউটারগুলির মধ্যে একটি ইন্টারেক্টিভ এন্টার-PSSession সংযোগ তৈরি করা যায় (এটি একটি FQDN বা সংযোগের জন্য একটি ছোট নাম নির্দিষ্ট করার জন্য যথেষ্ট, Kerberos প্রমাণীকরণ ব্যবহার করা হয়)। আপনি যদি একটি দূরবর্তী কম্পিউটারের IP ঠিকানা বা CNAME ব্যবহার করে সংযোগ করার চেষ্টা করেন, তাহলে আপনাকে প্রমাণীকরণ করা হবে না:
Enter-PSSession : Connecting to remote server 192.168.31.12 failed with the following error message: The WinRM client cannot process the request. Default authentication may be used with an IP address under the following conditions: the transport is HTTPS or the destination is in the TrustedHosts list, and explicit credentials are provided. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated.৷
আইপি ঠিকানা ব্যবহার করে একটি দূরবর্তী কম্পিউটারের সাথে সংযোগ করতে, আপনি বিশ্বস্ত হোস্টের (বিশ্বস্ত হোস্ট) তালিকায় হোস্টকে যুক্ত করতে পারেন বা WinRM এর জন্য SSL ব্যবহার করতে পারেন (এটি আরও সুরক্ষিত)।
বিশ্বস্ত হোস্টে একটি আইপি ঠিকানা যোগ করতে, এই কমান্ডটি চালান:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value 192.168.13.5
আপনি ওয়াইল্ডকার্ড মাস্ক ব্যবহার করে একটি বিশ্বস্ত হোস্ট যোগ করতে পারেন:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value *.woshub.com
বিশ্বস্ত হোস্টের তালিকা প্রদর্শন করতে:
Get-Item WSMan:\localhost\Client\TrustedHosts
একইভাবে, আপনি একটি দূরবর্তী কম্পিউটারে বিশ্বস্ত হোস্টের তালিকায় আপনার হোস্টকে যুক্ত করতে পারেন৷
পরিষেবা পুনরায় চালু করুন:
Restart-Service WinRM
একটি দূরবর্তী কম্পিউটারে তার IP ঠিকানা ব্যবহার করে সংযোগ করতে, নীচের কমান্ডটি চালান:
Enter-PSSession -ComputerName 192.168.13.5 -Credential (Get-Credential -UserName woshub\maxbak)
Enter-PSSession
এবং New-PSSession
cmdlets একটি স্থায়ী এক থেকে এক দূরবর্তী সেশন তৈরি করে এবং বেশিরভাগ ইন্টারেক্টিভ পরিস্থিতিতে ব্যবহৃত হয়। আপনি যদি স্বয়ংক্রিয়ভাবে স্ক্রিপ্ট বা কাজ চালাতে চান বা একাধিক দূরবর্তী কম্পিউটারে একই সাথে কিছু করতে চান, তাহলে Invoke-Command কমান্ডটি ব্যবহার করুন৷