PowerShell-এর রিমোট ম্যানেজমেন্ট ফিচার ব্যবহারের মাধ্যমে আপনি একটি রিমোট সিস্টেমে কমান্ড চালাতে পারেন। Enable-PSRemoting এবং New-PSSession হল দুটি গুরুত্বপূর্ণ কমান্ড, যা আপনাকে রিমোট কমান্ড এক্সিকিউট করার জন্য প্রয়োজনীয় সেটআপ এবং সেশন তৈরি করতে সাহায্য করে।
Enable-PSRemoting
Enable-PSRemoting কমান্ডটি PowerShell রিমোট সেশন সক্ষম করার জন্য ব্যবহৃত হয়। এটি আপনার কম্পিউটারকে রিমোট কমান্ড গ্রহণের জন্য প্রস্তুত করে, এবং Windows Management Framework (WMF) এর মাধ্যমে দূরবর্তী কম্পিউটারগুলির সাথে PowerShell সেশন পরিচালনা করতে সাহায্য করে।
সিনট্যাক্স:
Enable-PSRemoting -Force
ব্যাখ্যা:
-Forceপ্যারামিটারটি স্বয়ংক্রিয়ভাবে পছন্দসমূহ নিশ্চিত করে এবং কোনো প্রম্পট না দিয়ে এটি সক্রিয় করে।
এই কমান্ডটি একাধিক কাজ সম্পন্ন করে:
- Windows Remote Management (WinRM) সার্ভিস চালু করে।
- ফায়ারওয়াল rules কনফিগার করে যাতে রিমোট কম্পিউটার থেকে পোর্ট 5985 (HTTP) অথবা 5986 (HTTPS) এর মাধ্যমে সংযোগ করা যায়।
- PowerShell রিমোটিং এর জন্য প্রয়োজনীয় কনফিগারেশন সম্পন্ন করে।
উল্লেখযোগ্য পয়েন্ট:
- এই কমান্ডটি শুধুমাত্র অ্যাডমিনিস্ট্রেটিভ অধিকার (Administrator privileges) সহ চালানো যায়।
- আপনি যদি এই কমান্ডটি চালান, তবে আপনার সিস্টেমটি রিমোট কমান্ড গ্রহণের জন্য প্রস্তুত হবে।
New-PSSession
New-PSSession কমান্ডটি একটি নতুন PowerShell রিমোট সেশন তৈরি করতে ব্যবহৃত হয়। এটি অন্য কোনো রিমোট সিস্টেমের সাথে সংযোগ স্থাপন করতে সক্ষম করে এবং পরবর্তী কমান্ডগুলি ওই সেশনে চালানোর জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
$session = New-PSSession -ComputerName "RemoteComputer" -Credential (Get-Credential)
ব্যাখ্যা:
-ComputerName: এই প্যারামিটারটি রিমোট সিস্টেমের নাম অথবা আইপি ঠিকানা সংজ্ঞায়িত করে, যেখানে আপনি রিমোট সেশন তৈরি করতে চান। উদাহরণস্বরূপ,"RemoteComputer"।-Credential: এই প্যারামিটারটি রিমোট সিস্টেমে লগইন করার জন্য প্রয়োজনীয় ক্রিডেনশিয়াল প্রদান করে।Get-Credentialকমান্ডটি পাসওয়ার্ড এবং ইউজারনেম ইনপুট করতে একটি পপ-আপ উইন্ডো প্রদান করবে।
একটি সেশন তৈরি করার উদাহরণ:
$session = New-PSSession -ComputerName "192.168.1.100" -Credential (Get-Credential)
এখানে, আপনি 192.168.1.100 আইপি ঠিকানায় রিমোট সেশন তৈরি করছেন, এবং একটি ক্রিডেনশিয়াল ইনপুট করবেন।
Remote Session ব্যবহার করা
একবার New-PSSession কমান্ডের মাধ্যমে একটি সেশন তৈরি হলে, আপনি সেই সেশনটির মাধ্যমে দূরবর্তী সিস্টেমে কমান্ড এক্সিকিউট করতে পারেন। রিমোট সেশনে কাজ করার জন্য Enter-PSSession কমান্ড ব্যবহার করা হয়।
Enter-PSSession উদাহরণ:
Enter-PSSession -Session $session
এটি রিমোট সেশনটি সক্রিয় করবে এবং আপনি এখন ওই সেশনে থাকা অবস্থায় সেখানকার কমান্ড রান করতে পারবেন।
একাধিক সেশন একসাথে পরিচালনা:
$session1 = New-PSSession -ComputerName "RemoteComputer1" -Credential (Get-Credential)
$session2 = New-PSSession -ComputerName "RemoteComputer2" -Credential (Get-Credential)
Enter-PSSession -Session $session1
এখানে, দুটি ভিন্ন রিমোট সিস্টেমে সেশন তৈরি করা হচ্ছে এবং তারপর একটি সেশনে প্রবেশ করা হচ্ছে।
Remote Session থেকে বাহির হওয়া (Exit-PSSession)
আপনি যদি রিমোট সেশন থেকে বের হতে চান, তবে Exit-PSSession কমান্ড ব্যবহার করতে হবে।
উদাহরণ:
Exit-PSSession
এটি বর্তমান রিমোট সেশন থেকে বের হয়ে আসবে এবং আপনার লোকাল PowerShell প্রম্পটে ফিরে আসবেন।
রিমোট কমান্ড চালানো (Invoke-Command)
যদি আপনি একটি রিমোট সেশনে একাধিক কমান্ড একসাথে চালাতে চান, তবে Invoke-Command কমান্ড ব্যবহার করা হয়।
উদাহরণ:
Invoke-Command -Session $session -ScriptBlock { Get-Process }
এটি Get-Process কমান্ডটি রিমোট সিস্টেমে চালাবে এবং সেই সিস্টেমের সকল চলমান প্রসেস দেখাবে।
একাধিক সেশনে একযোগে কমান্ড চালানো:
Invoke-Command -Session $session1, $session2 -ScriptBlock { Get-Service }
এটি একাধিক সেশনে একই কমান্ড (এখানে Get-Service) চালাবে।
Remote Session বন্ধ করা (Remove-PSSession)
রিমোট সেশন বন্ধ করতে Remove-PSSession কমান্ড ব্যবহার করা হয়।
উদাহরণ:
Remove-PSSession -Session $session
এটি $session ভেরিয়েবলে সঞ্চিত রিমোট সেশন বন্ধ করে দেবে।
সারাংশ
PowerShell এর রিমোট ম্যানেজমেন্ট ফিচার ব্যবহার করে আপনি দূরবর্তী সিস্টেমে কমান্ড এক্সিকিউট করতে পারেন। Enable-PSRemoting কমান্ডটি রিমোট কমান্ড গ্রহণের জন্য প্রস্তুত করে, এবং New-PSSession কমান্ডটি রিমোট সেশন তৈরি করতে সাহায্য করে। একবার রিমোট সেশন তৈরি হলে, Enter-PSSession দিয়ে আপনি সেশনে প্রবেশ করতে পারেন, এবং Invoke-Command ব্যবহার করে একাধিক কমান্ড একযোগে চালাতে পারেন।
Read more